Alias:
SET-LISTING-PROPERTIES
This statement can be used to select which compiler listings are to be generated by the compiler. It can also be used to define the layout of the listings and their output destinations. The structure of the compiler listing is explained in the section “Description of listings” with the help of examples.
MODIFY-LISTING-PROPERTIES | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
OPTIONS = *UNCHANGED / *YES / *NO
*YES: The compiler creates a comprehensive listing of all predefined and user-specified compiler options.
SOURCE = *UNCHANGED
The value specified in the last MODIFY-LISTING-PROPERTIES statement applies.
SOURCE = *NO
No source/error listing is generated.
SOURCE = *YES(...)
A source/error listing is generated (not for PREPROCESS).
MINIMAL-MSG-WEIGHT = *NOTE / *WARNING / *ERROR / *FATAL
This operand can be used to specify the minimum message weight for which errormessages are to be included in the source/error listing.
Warning:
This suboption is used to limit the number of messages output as compared to the similar MODIFY-DIAGNOSTIC-PROPERTIES suboption, e.g. from WARNING to ERROR.
If MINIMAL-MSG-WEIGHT = *WARNING (default setting) was specified for MODIFY-DIAGNOSTIC-PROPERTIES, you will not be able to output notes with MODIFY-LISTING-PROPERTIES.
Examples
To output error messages in the source listing with a message weight of NOTE:
MODIFY-DIAGNOSTIC-PROPERTIES MINIMAL-MSG-WEIGHT=*NOTE MODIFY-LISTING-PROPERTIES SOURCE=*YES(MINIMAL-MSG-WEIGHT=*NOTE)
Write all error messages with a minimum message weight of NOTE to the system file SYSOUT, and error messages with a minimum message weight of WARNING to the source listing:
MODIFY-DIAGNOSTIC-PROPERTIES MINIMAL-MSG-WEIGHT=*NOTE MODIFY-LISTING-PROPERTIES SOURCE=*YES(MINIMAL-MSG-WEIGHT=*WARNING)
(Default)
PREPROCESSING-RESULT = *UNCHANGED / *NO / *YES
*UNCHANGED
The value specified in the last MODIFY-LISTING-PROPERTIES statement applies.
*NO
The compiler does not generate a preprocessor listing.
*YES
The compiler generates a preprocessor listing.
DATA-ALLOCATION-MAP = *UNCHANGED
The value specified in the last MODIFY-LISTING-PROPERTIES statement applies.
DATA-ALLOCATION-MAP = *NO
The compiler does not generate a map listing.
DATA-ALLOCATION-MAP = *YES(...)
The compiler generates a map listing (only for COMPILE).
STRUCTURE-LEVEL = *UNCHANGED / *NONE / *MAX / <integer 0..256>
*UNCHANGED
The value specified in the last MODIFY-LISTING-PROPERTIES statement applies.
*NONE
Structure elements are not included in the map listing.
*MAX
Only the structure elements up to a maximum nesting level (256) are included in the map listing.
<integer 0..256>
Only the structure elements up to the nesting level specified by <integer> are included in the map listing. If a nesting level of 0 is specified, no structure elements are output (equivalent to STRUCTURE-LEVEL=*NONE).
Structure elements are represented with indentation and bracketing {}. Elements with a nesting level of 16 or higher are indented no further.
CROSS-REFERENCE = *UNCHANGED
The value specified in the last MODIFY-LISTING-PROPERTIES statement applies.
CROSS-REFERENCE = *NO
The compiler does not create a cross-reference listing.
CROSS-REFERENCE = *YES(...)
The compiler creates a cross-reference listing (not for PREPROCESS). This listing always contains a FILETABLE section with the names of all files, libraries, and elements that are used as sources by the compiler.
The cross-reference listing is created for each compilation unit, i.e. for the local module. If a global (multi-module) cross-reference listing is required, the MODIFY-CIF-PROPERTIES statement can be used to create CIF information for subsequent processing with the global listing generator.
PREPROCESSING-INFO = *YES / *NO
The cross-reference listing may optionally include a list of names processed by thepreprocessor.
TYPES = *UNCHANGED / *YES / *NO
The cross-reference listing may optionally include a list of user-defined types (typedefs, structure, union, class and enumeration types).
VARIABLES = *UNCHANGED / *YES / *NO
The cross-reference listing contains a list of variables (can be suppressed with *NO).
FUNCTIONS = *UNCHANGED / *YES / *NO
The cross-reference listing contains a list of functions (can be suppressed with *NO).
LABELS = *UNCHANGED / *YES / *NO
The cross-reference listing contains a list of labels (can be suppressed with *NO).
TEMPLATES = *UNCHANGED / *YES / *NO
The cross-reference listing optionally contains a list of templates (only for C++ V3 or C++ 2017 compilations).
ORDER = *UNCHANGED / *STD / list-poss(6): *PREPROCESSING-INFO / *TYPES / *VARIABLES / *FUNCTIONS / *LABELS / *TEMPLATES
This option specifies the order in which the individual parts of the cross-referencelisting are shown.
*STD
The default is the order shown after list-poss above.
PROJECT-INFORMATION = *UNCHANGED / *YES / *NO
*UNCHANGED
The value specified in the last MODIFY-LISTING-PROPERTIES statement applies.
*YES
The compiler creates a project listing (only for COMPILE) showing the names originally used in the source program and corresponding names internally generated by the compiler for the linkage editor. This is important especially in the case of C++ compilations because the generated names of functions also contain the types of their parameters in code form.
The project listing is created for each compilation unit, i.e. for the local module. If a global (multi-module) project listing is required, the MODIFY-CIF-PROPERTIES statement can be used to create CIF information for subsequent processing with the global listing generator.
*NO
The compiler does not create such a list.
ASSEMBLER-CODE = *UNCHANGED / *YES / *NO
*UNCHANGED
The value specified in the last MODIFY-LISTING-PROPERTIES statement applies.
*YES
The compiler generates an object code listing (only for COMPILE).
*NO
The compiler does not create such a list.
SUMMARY = *UNCHANGED / *YES / *NO
*UNCHANGED
The value specified in the last MODIFY-LISTING-PROPERTIES statement applies.
*YES
The compiler creates a listing containing statistical data on the compiler run.
*NO
The compiler does not create such a list.
LAYOUT =
This option can be used to define the page length (number of lines per page) and the page width (number of characters per line) for the compiler listings.
If a line width of 120 characters is selected, all the listings will have narrower headers and footers. Text lines are wrapped only in the table listings (option, cross-reference and map listings). Overlong text lines in the source, preprocessor and object code listings may be truncated when the listings are printed.
When a BS2000 output file is specified, the first column of every line is reserved to control the line feed.
When the output is sent to a POSIX file, the appropriate POSIX control characters for line and page feeds are generated. The result is that the line length in the POSIX output file is up to 3 characters larger than the selected line width specification.
LAYOUT = *UNCHANGED
The value specified in the last MODIFY-LISTING-PROPERTIES statement applies.
Listings in landscape format.
LAYOUT = *FOR-NORMAL-PRINT(...)
Listings in landscape format.
LINE-SIZE = *UNCHANGED
The value specified in the last MODIFY-LISTING-PROPERTIES statement applies.
This also applies if that specification was made at *FOR-ROTATION-PRINT.
LINE-SIZE = *STD
132 characters per line are output.
LINE-SIZE = <integer 120..255>
120 to 255 characters per line are output.
LINES-PER-PAGE = *UNCHANGED
The value specified in the last MODIFY-LISTING-PROPERTIES statement applies.
This also applies if that specification was made at *FOR-ROTATION-PRINT.
LINES-PER-PAGE = *STD
64 lines per page are printed.
LINES-PER-PAGE = <integer 11..255>
11 to 255 lines are printed per page.
The lower limit is fixed at 11 lines so that at least the listing header and footer and one line of text can be printed.
LAYOUT = *FOR-ROTATION-PRINT(...)
Listings in portrait format.
In order to print such listings, the ROTATION parameter must be specified in the PRINT-FILE command.
LINE-SIZE = *UNCHANGED
The value specified in the last MODIFY-LISTING-PROPERTIES statement applies.
This also applies if that specification was made at *FOR-NORMAL-PRINT.
LINE-SIZE = *STD
120 characters per line are output.
LINE-SIZE = <integer 120..255>
120 to 255 characters per line are output.
LINES-PER-PAGE = *UNCHANGED
The value specified in the last MODIFY-LISTING-PROPERTIES statement applies.
This also applies if that specification was made at *FOR-NORMAL-PRINT.
LINES-PER-PAGE = *STD
84 lines per page are printed.
LINES-PER-PAGE = <integer 11..255>
11 to 255 lines are printed per page.
The lower limit is fixed at 11 lines so that at least the listing header and footer and one line of text can be printed.
INCLUDE-INFORMATION = *UNCHANGED / *NONE* / ALL / *USER-INCLUDES-ONLY
This option is used to specify which header files (if any) are to be shown in the source, preprocessor and cross-reference listings. By default, only the user-defined header files are shown, not the standard headers.
LISTING-PRAGMAS =
This operand controls which existing #pragma
directives (if any) in the source text are to be interpreted when creating source and preprocessor listings.
A description of #pragma
directives can be found in the section “Pragmas to control thelayout of listings”.
LISTING-PRAGMAS = *UNCHANGED
The value specified in the last MODIFY-LISTING-PROPERTIES statement applies.
LISTING-PRAGMAS = *INTERPRETED / *IGNORED
All #pragma
directives are interpreted (*INTERPRETED) or ignored (*IGNORED).
LISTING-PRAGMAS = *SELECT(...)
One or more of the following #pragma
directives to control listings are interpreted (*YES) or ignored (*NO).
PAGE = *UNCHANGED / *YES / *NO
Directive #pragma PAGE
[text]:
for a page feed and optional line in the listing header
TITLE = *UNCHANGED / *YES / *NO
Directive #pragma TITLE
text:
for a line in the listing header
SPACE = *UNCHANGED / *YES / *NO
Directive #pragma SPACE
[n]:
to insert blank lines
LIST = *UNCHANGED / *YES / *NO
Directive #pragma LIST
[ING
] ON
or #pragma LIST
[ING
] OFF
:
to suppress the output of source text lines
INITIAL-TITLE-TEXT = *UNCHANGED / *NONE / <c-string 1..256>
This operand can be used to specify if an additional line is to appear in the header of the listing and the text that is to be entered in it. In contrast to pragmas, which only apply to source and preprocessor listings, the INITIAL-TITLE-TEXT specification applies to all compiler listings.
In the case of source and preprocessor listings, TITLE and PAGE pragmas (if any) override the INITIAL-TITLE-TEXT specification.
OUTPUT = *UNCHANGED
The value specified in the last MODIFY-LISTING-PROPERTIES statement applies.
OUTPUT = *SYSLST
The listings are written to the temporary system file SYSLST by default and are sent from there to the printer at the end of the task (at LOGOFF). Output to SYSLST is not supported in the modes C++ V3 and C++ 2017 and is rejected with a corresponding error message.
OUTPUT = *SYSOUT
The listings are written to the system file SYSOUT, which is assigned to the terminal ininteractive mode. Output to SYSLST is not supported in the modes C++ V3 and C++ 2017 and is rejected with a corresponding error message.
OUTPUT = *STD-FILE
The listings are written to a cataloged BS2000 file. The name of this file is derived from the name of the source program as follows:
Source | *SYSDTA | BS2000 file | PLAM library | POSIX file |
Default name | CSTDLST.LST | file.LST | lib-elem.LST | file.LST |
If the source program is located in a PLAM library, the library and element name of the source are combined with a hyphen (lib-elem) and used in the default file name. The rules by which the compiler constructs default names are described in detail in the section “Default names for output containers”.
OUTPUT = *SOURCE-LOCATION
The output destination and name are derived from the location and name of the source program as follows:
Source | *SYSDTA | BS2000 file | PLAM library | POSIX file |
Output destination | BS2000 file | BS2000 file | Library of source | Directory of |
Default name | CSTDLST.LST | file.LST | elem.LST (type P) | file.lst |
The rules by which the compiler constructs default names are described in detail in the section “Default names for output containers”.
OUTPUT = <filename 1..54>
The listings are written to a cataloged BS2000 file with the specified name. Note that this specification is not meaningful when compiling multiple source programs, since the file is overwritten in each case.
OUTPUT = <posix-pathname>
The listings are written to the POSIX file system.
Both a file name and a directory are permitted as <posix-pathname>. See "Compiler I/O in the POSIX file system (C/C++-Compiler, #18)" for a description of the term <posix-pathname>.
When a file name is specified, the listings are stored under this name.
When a directory name dir is specified, the listings for each compiled source program are written under the default name sourcefile.lst to the directory dir (see also section “Defaultnames for output containers”).
The directories specified with <posix-pathname> must already exist.
The specification of a file name is not meaningful when compiling multiple source programs, since the file is overwritten in each case.
OUTPUT = *LIBRARY-ELEMENT(...)
This option specifies the PLAM library (LIBRARY=) and the element name (ELEMENT=) under which the expanded program is to be stored. The elements are stored as elements of type P.
LIBRARY = *STD-LIBRARY
The listings are written to the library SYS.PROG.LIB by default.
LIBRARY = *SOURCE-LIBRARY
The listings are written to the PLAM library which contains the source program.
The *SOURCE-LIBRARY specification is invalid if the source program is read from a cataloged BS2000 file, a POSIX file or via SYSDTA.
LIBRARY = <filename 1..54>
The listings are written to a PLAM library with the specified name.
LIBRARY = *LINK(...)
LINK-NAME = <filename 1..8>
A link name can also be specified instead of the library name. <filename> designates the link name of the assigned library. This link name must already have been assigned to the PLAM library (with the ADD-FILE-LINK command) before the compiler is called.
ELEMENT = *STD-ELEMENT(...)
By default, the element name of the listing is derived from the name of the sourceprogram as follows:
Source | *SYSDTA | BS2000 file | PLAM library | POSIX file |
Default name | CSTDLST.LST | file.LST | elem.LST | file.LST |
The rules by which the compiler constructs default names are described in detail in the section “Default names for output containers”.
VERSION = *UPPER-LIMIT
If the element entry does not contain a version ID, the highest possible version is used by the compiler.
VERSION = *INCREMENT
The element is assigned a version number that is obtained by incrementing the highest existing version number by 1, assuming that the highest existing version ID ends with a digit that can be incremented. If the version ID cannot be incremented, the compiler run is aborted with an error message.
See the COMPILE statement for an example.
Warning: You may not specify *INCREMENT in the modes C++ V3 and C++ 2017.
VERSION = <composed-name 1..24 with-under>
The element is assigned the specified version.
ELEMENT = <composed-name 1..64 with-under>(...)
The listings are written to a library element (type P) with the specified name. Note that the specification of an element name is not meaningful when compiling multiple source programs, since the element is overwritten in each case.
VERSION = *UPPER-LIMIT / *INCREMENT /
<composed-name 1..24 with-under>
The version can be specified as described above for
ELEMENT=*STD-ELEMENT(...).
Warning: You may not specify *INCREMENT in the modes C++ V3 and C++ 2017.