Using the Compiler | Callable Shared Objects |
This chapter lists and describes the directives you can use to control the Compiler. The first section is intended to help you find directives for particular purposes; it lists their names, organized into categories, with a very brief description of the purpose of each. The second section contains complete descriptions of the directives, in alphabetical order.
See the section Setting Directives in the chapter Using the Compiler for information on setting directives.
Below is a list of categories of Compiler directives. Select a category to see a list of directives in that category. You can then select a directive to see its parameters and other details.
Enabling Language Features
Run-time Behavior
Multi-threading
Compiler Control
Compiling for Debugging and Analysis
Format of Your Data Files
Object Code, Size and Optimization
Reserved Directives
An asterisk next to the description of a directive means you need an add-on product before you can use it. If you use it without the appropriate add-on product, the Compiler does not give an error message but the directive does not have the desired effect.
These directives change which language features your Compiler accepts.
CICS | * Enable CICS |
CICS-CPY | * Insert COPY "CICS-CPY" |
CONSTANT | Define constant |
FCDREG | Registers for files |
PREPROCESS | Source from preprocessor |
REWRITE-LS | REWRITE on LINE SEQUENTIAL files |
SEQCHK | Check line numbers |
SOURCEFORMAT | Enable free format code |
SQL | Allow EXEC SQL |
ACTUAL-PARAMS | Specify actual parameters that are substituted for formal parameters in a parameterised class. |
ANS85 | ANSI'85 |
COBOL370 | IBM COBOL/370 |
COMS85 | ANSI'85 Communications |
DBCHECK | Check for DBCS |
DBCS | DBCS Support |
DG | Data General |
DIALECT | Enable check-time and run-time behavior consistent with a specified dialect |
DOSVS | IBM DOS/VS COBOL |
FLAG | Flag for dialect |
FLAGCD | Flag conflicts |
FLAGSTD | Flag ANSI'85 level |
IBM-MS | IBM / Microsoft COBOL V1.0 |
ISO2000 | ISO2000 |
JAPANESE | Double-byte extensions |
MF | Level of Micro Focus COBOL |
MS | Microsoft COBOL V1 or V2 |
NCHAR | Double-byte extensions |
OOCTRL | OO program language elements |
OSVS | IBM OS/VS COBOL |
PC1 | IBM / Microsoft COBOL V1.0 |
RM | Ryan-McFarland |
SAA | Systems Application Architecture |
XOPEN | X/Open |
VSC2 | IBM VS COBOL II |
AREACHECK | Area A check |
CMPR2 | Mainframe compatible |
CONVERTPTR | REDEFINE pointers |
DIALECT | Enable check-time and run-time behavior consistent with a specified dialect |
DBCSSOSI | Shift-in, -out |
LIBRARIAN | Allow -INC |
MAPNAME | IBM program-names |
PANVALET | Allow ++INCLUDE |
PROGID-COMMENT | Comment in PROGRAM-ID |
RDW | Variable length records |
TRUNCCOPY | Copyfile-names |
ADDRSV | Add reserved word |
ADDSYN | Add synonym |
MAKESYN | Make synonymous |
OVERRIDE | Change meaning |
REMOVE | De-reserve |
NESTCALL | Allow nested programs |
QUAL | Allow qualification |
QUALPROC | Allow qualification |
SEG | Allow segmentation |
TRICKLE | Restrict PERFORM |
These directives change the definition of language features and so change the logic of your program.
Some directives listed under Dialect also affect behavior.
ACCEPTREFRESH | ACCEPT statement |
ARITHMETIC | Evaluate expressions |
ASSIGN | EXTERNAL or DYNAMIC |
ASSIGN-PRINTER | Printer output |
BWZSTAR | BWZ with PIC * |
CHARSET | ASCII or EBCDIC |
CHECKDIV | Allow divide by zero |
CHECKNUM | Check numeric fields |
COBFSTATCONV | EXTFH status codes |
CONVERTRET | RETURNING item type |
CURRENCY-SIGN | Currency sign |
CURRENT-DATE | DDMMYY or MMDDYY |
DEFAULTBYTE | Initialize Data Division |
DEFAULTCALLS | CALL convention |
DETECT-LOCK | Detect record locks |
EARLY-RELEASE | Early user syntax |
FOLD-CALL-NAME | Fold call-name |
FOLD-COPY-NAME | Fold copyfile-names |
HOST-NUMCOMPARE | Numeric comparisons |
INDD | Transform ACCEPTs to READs |
INITCALL | Execute a module |
IXNLSKEY | Sort index file keys according to the local collating sequence |
IXNUMKEY | Enable true numeric sorting on index keys. |
LOCKTYPE | Read locked records |
NATIVE | Collating sequence |
NLS | National Language Support |
OUTDD | Transform DISPLAYs to WRITEs |
PRINT-EXT | Printing extension |
PROTECT-LINKAGE | Protect linkage |
REPORT-LINE | Report Writer lines |
SPZERO | Space = zero in numerics |
STICKY-LINKAGE | Keep parameters linked |
TERMPAGE | Pad out report page |
TRACE | Enable READY TRACE |
ZEROLENGTHFALSE | Zero length tests |
ZWB | Numeric comparisons |
ALPHASTART | Numbering in ALPHABET |
COMP-6 | COMP-6 items format |
DBSPACE | DBCS space |
DIALECT | Enable check-time and run-time behavior consistent with a specified dialect |
CASE | Case of program-name |
FDCLEAR | Clear record buffer after write |
FP-ROUNDING | Floating-point items |
HOSTFD | Record areas associated with a file should only be allocated at the time of an OPEN statement and not before |
IBMCOMP | Word-storage mode |
INTDATE | Starting date for integer format dates used with date intrinsic functions |
ODOSLIDE | Variable length table |
OPTIONAL-FILE | All files optional |
PERFORM-TYPE | Returns from PERFORM |
RETRYLOCK | Retry locked record |
SIGN | Included signs |
SSRANGE | Run-time checking of subscripts, indexes and reference-modified items |
STICKY-PERFORM | Behavior of PERFORM |
SWITCH-TYPE | ANSI-compatible switch behavior |
SYMBSTART | Numbering in SYMBOLIC |
TRUNC | Truncation of binary |
AUTOLOCK | Default locking |
COMP | Computational subset |
COMP-5 | COMP-5 behavior |
DE-EDIT | Numeric-edited behavior |
FILESHARE | Default locking |
IOCONV | READ-INTO/WRITE-FROM |
MF | Level of Micro Focus COBOL |
OLDBLANKLINE | BLANK LINE |
OLDINDEX | Indexes = subscripts |
OLDNEXTSENTENCE | NEXT SENTENCE |
OLDREADINTO | READ INTO |
OLDSTRMIX | Allows PIC X and PIC N field in the same STRING, UNSTRING or INSPECT |
WRITELOCK | Default locking |
APOST | QUOTE = ' |
AMODE | Compatibility with mainframe-style pointers |
BYTE-MODE-MOVE | Control overlapping moves |
DIALECT | Enable check-time and run-time behavior consistent with a specified dialect |
DYNAM | Ignore CANCEL |
FP-ROUNDING | Floating-point items |
HOSTNUMMOVE | IBM MOVE statements |
IBMCOMP | Word-storage mode |
MAPNAME | IBM program-names |
ODOOSVS | OS/VS-style OCCURS DEPENDING ON |
OLDCOPY | ANSI'68 COPY |
QUOTE | QUOTE = " |
REMAINDER | Select how the remainder is calculated in a DIVIDE statement |
ALIAS | Subscripts |
ALIGN | Data alignment |
BOUND | Bound-check |
BOUNDOPT | Optimize tables |
CHECK | Turn on all run-time checks in generated code |
LINKCHECK | Check Linkage Section items |
PARAMCOUNTCHECK | Omit parameters |
PERFORMOPT | Optimize PERFORM of empty paragraph |
REENTRANT | Make program reentrant |
SERIAL | Make program serial |
CANCELLBR | Close COPY .lbr file |
CONVSPACE | Source code spaces |
COPYLBR | Copy library = .lbr file |
INTLEVEL | Portability level |
KEEP-INT | Keep .int files |
KEYCHECK | Check the number of keys |
P64 | Compile a program for execution in a 64-bit run-time environment. |
PREPROCESS | Preprocess source |
PROTOTYPE | Enable relaxed or strict CALL prototype checking |
COBOLDIR | Use/ignore cobol.dir |
CONFIRM | Display directives |
DIALECT | Enable check-time and run-time behavior consistent with a specified dialect. |
DIRECTIVES | File of directives |
DIRECTIVES-IN-COMMENTS | Enable directives in comment lines |
SETTING | Print directives |
SHOW-DIR | Print directives files |
USE | File of directives |
BRIEF | No message texts |
CHANGE-MESSAGE | Change message severity |
EDITOR | Error file for Editor |
ERRLIST | Print messages only |
ERRQ | Pause on error |
FLAG | Flag outside the dialect |
FLAGAS | Show flags as errors |
FLAGCD | Conflicting directives |
FLAGMIG | OSVS and VSC2 differences |
FLAGQ | Pause on flag |
FLAGSINEDIT | Flags in error file |
FLAGSTD | Flag above ANSI'85 level |
HIDE-MESSAGE | Set message to hide |
INFORETURN | Information message return value |
MAX-ERROR | Limit number of Compiler errors |
MOVE-LEN-CHECK | Check source and target lengths for alphanumeric MOVE operations |
QUERY | Pause if copyfile missing |
STDERR | Write messages to STDERR |
WARNING | Level of message to output |
COPYEXT | Copyfile extensions |
COPYLIST | List copyfiles |
DATAMAP | List data items |
DATE | Date for listings |
ERRLIST | List source and error messages |
FORM | Page length |
LINE-COUNT | Controls detail of information at end of listing |
LIST | File for source listing |
LISTPATH | Specify the list-file path |
LISTWIDTH | Page width |
MFCOMMENT | Alternate-format comments |
PREPLIST | Preprocess debug list |
File for source listing | |
RAWLIST | Static list |
REFNO | Show Compiler version number in listings |
RESEQ | Generate line numbers |
SEQCHK | Check line numbers |
SETTING | Print directives |
SHOW-DIR | Print directives files |
SOURCEASM | Source in assembly listing |
TIME | Put time on listings |
VERBOSE | Compiler messages |
XREF | Produce cross-reference listing |
ZEROSEQ | Zeros in line numbers |
BELL | Beep when stop |
CONFIRM | Display directives |
ECHO | Display errors |
ECHOALL | Display full listing |
SUPFF | No page headings |
These directives make the Compiler create files containing extra information about the program, for input to software used for debugging.
ANIM | For animating |
COBIDY | Path for Animator file |
EDITOR | Error file for Editor |
FLAGSINEDIT | Flags in error file |
GNTANLZ | Create generated program that can be analyzed by GNT Analyzer. |
INCLUDE-FILLER | FILLER information in .idy |
PROFILE | For Profiler |
These directives change the format in which data is stored in your data files.
CALLFH | External file handler |
DATACOMPRESS | Data compression |
FILETYPE | Data file format |
IDXFORMAT | Indexed file structure |
KEYCOMPRESS | Key compression |
RECMODE | Fixed or variable length |
SEQUENTIAL | Variants of SEQUENTIAL organization |
These directives change the object code produced without changing the logic of your program.
CALLFH | External file handler |
CALLSORT | External sort handler |
CALLADIS | External ACCEPT/DISPLAY |
CALLMAP | External CALL handler |
CALLMCS | External MCS handler |
WRITETHROUGH | Unbuffered writes |
LITLINK | Literals public |
LITVAL-SIZE | BY VALUE size |
RTNCODE-SIZE | RETURN-CODE size |
CICSOPTIMIZE | * Optimize BLL cells |
HOSTSIGNS | Illegal sign nibbles |
LNKALIGN | Assume linkage aligned |
OPT | Optimization level |
SEG | Segmentation |
TARGET | Chip specific instructions |
This directive affects the behavior of the Report Writer control module:
RWHARDPAGE
These directives are reserved, or are maintained for compatibility with earlier products and have no effect. Do not use them.
ADV | Adds control characters to print files |
ENSUITE | |
FASTSORT | |
FCD3 | |
LOCALCOUNT | |
NESTLOCALSTORAGE | |
OLDFILEIO | |
WB2 | |
WB3 |
Descriptions for all of the Compiler directives appear alphabetically. Each description contains the following entries.
A brief description of the function of DIRECTIVE-NAME.
Syntax in the form:
+--------------. v | >>-.---.-.-------DIRECTIVE-NAME--"parameter(s)"-.->< .-/-+ ..----.-DIRECTIVE-NAME-----------------+ .-NO-+
The syntax of the Compiler directives is shown using diagrams called "railroad
tracks", in which a directive and its parameters are shown joined by
lines indicating the order in which they should be written. You read these
diagrams from left to right. Each diagram starts with >>
and ends with ><
. Sometimes the track forks to show
alternatives and then joins up again. The length of a track has no
significance.
The loop over the parameter in the above example indicates that it can be repeated one or more times.
Parameters for directives are shown in quotation marks (" "), although you can use parentheses instead unless otherwise stated. On UNIX, the equals sign (=) can be used as an alternative. When quotation marks are used the parameter can contain spaces, whereas no spaces are allowed in a parameter surrounded by parentheses.
If you use quotation marks you must escape them using the backslash character (\). If the option contains an equals sign and you specify the option on the command line, you must use two equals signs.
For detailed information on using Compiler directives on the command line, see the section Option Configuration in the chapter COBOL System Interface (Cob).
The slash (/) in the syntax diagrams is for use on DOS, Windows and OS/2. It should be ignored for UNIX environments and does not appear in diagrams for UNIX-specific directives.
Lists and describes valid parameter(s), if any, for the directive.
Default: | Indicates the directive's default setting |
Phase: | Shows the phase controlled by this directive. One of: Syntax check Generate Both |
$SET: | Shows whether you can put the directive on a $SET statement in your source program; "Initial" in this entry means it is only allowed on a $SET statement before the first line of COBOL code. The directives specified by a $SET statement in the source code must not exceed column 72. |
Shows if the setting of this directive changes the setting of any other directives, or if any other directives affect the setting of this directive.
There are a number of different cases, identified under this heading by the following keywords:
immediately | The change specified is done immediately, as a part of the processing of this directive. This enables you to reset the value by specifying the second directive after the first. Don't do this unless you know what you are doing. |
at end | The change specified takes place when all the directives have been processed. This prevents you from overriding the new value. |
Contains any additional information about the directive.
In the menus, an asterisk (*) next to the name of a directive means you need an add-on product before you can use it. If you use it without the appropriate add-on product, the Compiler does not give an error message but the directive does not have the desired effect.
Specifies whether the data areas associated with Screen Section data are updated from their corresponding Working-Storage Section items before an ACCEPT statement.
>>-.---.-.----.--ACCEPTREFRESH------------->< .-/-+ .-NO-+
None
Default: | NOACCEPTREFRESH |
Phase: | Syntax check |
$SET: | Initial |
Set to ACCEPTREFRESH immediately by MS, IBM-MS or PC1.
With ACCEPTREFRESH specified, before an ACCEPT statement that references a Screen Section data item, all data areas associated with Screen Section items subsidiary to the item being accepted are modified as follows:
With NOACCEPTREFRESH specified, the Screen Section data area is left as it was following the last ACCEPT or DISPLAY.
Adds one or more specific reserved words to the reserved word list so that they are recognized as reserved words in your program. The specified reserved words are added, whatever dialect directives are in force.
+----------. v | >>--.---.--ADDRSV--"rsv-word"-------------->< .-/-+
rsv-word |
A reserved word in some dialect of COBOL, but not necessarily in a dialect specified for this compilation |
Default: | No additional reserved words are created. |
Phase: | Syntax check |
$SET: | Initial |
The specified reserved words are added, whatever dialect directives are in force.
This directive does not appear in the list created with the SETTING directive.
Defines a user-defined reserved word to be synonymous with an existing reserved word.
>>--ADDSYN-"rsv-word" = "user-word"-----><
rsv-word |
Existing reserved word. |
user-word |
Any COBOL word not the same as an existing reserved word. |
Default: | No reserved word synonyms are created. |
Phase: | Syntax check |
$SET: | Initial |
The equals sign (=) must be surrounded by spaces. You can also leave a space between the directive and its option to improve readability. If you are specifying this directive to the -C option of the Cob command line, you need to ensure that all characters are escaped correctly for the UNIX shell. See the section Option Configuration in the chapter COBOL System Interface (Cob) for details. For example, to specify ADDSYN on the command line:
cob -C 'addsyn "low" == "lowlight"' a.cbl
This directive does not appear in the list created with the SETTING directive.
Causes a control character to be inserted at the start of each line in a print file. This is for compatibility with mainframe operation.
>>-.---.-.----.--ADV----------------------->< .-/-+ .-NO-+
None
Default: | NOADV |
Phase: | Syntax check |
$SET: | Any |
ADV has no effect unless FILETYPE"11" is set.
Enables you to alias data-items.
>>-.---.-.----.-ALIGN----------------------------->< .-/-+ .-NO-+
None
Default: | NOALIAS |
Phase: | Generate |
$SET: | Initial |
Using the SET ADDRESS OF statement you can access the same data in two different ways; that is, in the Working-Storage Section and as an item in the Linkage Section. This technique is known as "aliasing". Any program that uses aliasing must be compiled with ALIAS specified.
Specifies the memory boundaries on which data items of level-01 or level-77 are aligned.
>>-.---.--ALIGN--"integer"----------------->< .-/-+
integer |
The distance from the start of one level-01 to the start of the next is a multiple of this. Can take any value from 1 to 255. |
Default: | ALIGN"8" |
Phase: | Syntax check |
$SET: | Initial |
Set to ALIGN"8" immediately by IBMCOMP or NORM.
Set to ALIGN"2" immediately by RM or RM"ANSI".
Data items of level-01 are aligned on byte boundaries that are multiples of the value given.
This can help produce more efficient execution results but does mean more memory might be used.
Setting integer to a number that is not a multiple of four could impair the efficiency of the generated code.
Sets the number from which the Compiler counts positions in the collating sequence when compiling the ALPHABET clause.
>>-.---.--ALPHASTART--"integer"------------>< .-/-+
integer |
The number to be used. |
Default: | ALPHASTART"1" |
Phase: | Syntax check |
$SET: | Initial |
For ANSI conformance use ALPHASTART"1".
With ALPHASTART"1", the COBOL statement:
alphabet myalpha is 66, 67
declares an alphabet consisting of "A" and "B" since, counting from 1, these are the 66th and 67th characters in the ASCII collating sequence. With ALPHASTART"0", MYALPHA consists of "B" and "C".
Provides compatibility with mainframe-style pointers.
>>--.---+---.----+--AMODE----"format"-------->< .-/-. .-NO-.
format | Specifies the storage format of pointers |
Default: | NOAMODE |
Phase: | Syntax check |
$SET: | Initial |
The AMODE directive must be used with any program module which:
In general, to eliminate potential problems that might occur when trying to be selective about which programs are compiled with this directive, we strongly recommended that you use the AMODE directive on all programs in the application, and that you use the same format for each subprogram.
The possible values of format are:
24 | All pointers are stored in a 24-bit format. This format is compatible with 'below-the-line' storage on the mainframe. The top 8 bits of the pointer are masked off when the address of a linkage item is set from the pointer. This means that, as on the mainframe, the top 8 bits can be manipulated directly by the user's code. |
31 | All pointers are stored in a 31-bit format. This format is compatible with 'above-the-line' storage on the mainframe. The top bit of the pointer is masked off when the address of a linkage item is set from the pointer. This means that, as on the mainframe, the top bit can be manipulated directly by the user's code. |
The AMODE directive cannot be used for programs that need to call a Server Express library routine or an external API that expects pointer items to be in the native machine format.
The directive CONVERTPTR must not be used with the AMODE directive.
Makes the Compiler produce extra information so that you can debug your program using Animator.
>>-.---.-.----.--ANIM---------------------->< .-/-+ .-NO-+
None
Default: | NOANIM |
Phase: | Both |
$SET: | Initial |
Set to ANIM immediately by WB.
Set to ANIM at end by BROWSE
Set to NOANIM at end by NOINT or RNIM.
An intermediate code file is created, during the syntax check phase.
The intermediate code is held in a file with the filename extension .int. This can be animated. A file with the extension .idy is also created. This contains the additional information needed to animate the program.
The location of the .idy file is controlled by the COBIDY directive.
COBIDY Compiler directive
OPT Compiler directive
Specifies that words reserved in the ANSI'85 COBOL Standard are to be treated as reserved words, and changes the behavior of certain features to be compatible with that Standard.
>>-.---.-.-------ANS85--"SYNTAX"--.-------->< .-/-+ ..----.-ANS85------------+ .-NO-+
SYNTAX | Makes the directive affect syntax only and not behavior. |
Default: | ANS85 |
Phase: | Syntax check |
$SET: | Initial |
Set to ANS85 at end by VSC2 or SAA.
This directive causes the following behavior changes:
Makes the Compiler interpret the figurative constant QUOTE as the single-quote character (').
>>-------APOST-----------------------------><
None
Default: | QUOTE |
Phase: | Syntax check |
$SET: | Any |
The opposite of this directive is the directive QUOTE which causes the double-quote character (") to be used.
Causes the Compiler to treat any token which starts in area A in the Procedure Division as a paragraph or section label, regardless of the preceding tokens.
>>-.---.-.----.--AREACHECK----------------->< .-/-+ .-NO-+
None
Default: | NOAREACHECK |
Phase: | Syntax check |
$SET: | Any |
If AREACHECK is not specified, only tokens which follow a period are treated as possible labels. This directive provides closer compatibility with mainframe error handling, where omitting a period before the label produces a less serious message. We recommend that such erroneous source code is corrected.
Specifies how arithmetic expressions are to be evaluated.
>>-.---.--ARITHMETIC--"arith-type"--------->< .-/-+
arith-type |
The behavior to adopt. |
Default: | ARITHMETIC"MF" |
Phase: | Syntax check |
$SET: | No |
The possible values of arith-type are:
OSVS | Truncate according to the rules of OS/VS COBOL. |
VSC2 | Truncate according to the rules of VS COBOL II and COBOL/370. |
MF | Do not truncate intermediate results. |
With ARITHMETIC"MF" specified, expressions are calculated as accurately as possible because no truncation takes place.
Specifies how to assign a filename when neither EXTERNAL nor DYNAMIC appear in the SELECT statement.
>>-.---.--ASSIGN--"assign-type"------------>< .-/-+
assign-type |
EXTERNAL or DYNAMIC. Defines the method. |
Default: | ASSIGN"DYNAMIC" |
Phase: | Syntax check |
$SET: | Any |
For more details, see your File Handling book.
For any indexed files or for all files if the program is compiled using the CALLFH directive, filename mapping overrides any syntax definition or use of the ASSIGN directive.
Specifies how to assign the output from an ASSIGN TO PRINTER clause when the clause does not specify a filename.
>>-.---.-.-----ASSIGN-PRINTER.-"filename"-.-.-->< .-/-+ | .-()---------+ | .-NO--ASSIGN-PRINTER---------------+
filename |
The file to be associated with the ASSIGN TO PRINTER clause. |
Default: | NOASSIGN-PRINTER |
Phase: | Syntax check |
$SET: | Any |
This directive has no effect if you specify a filename as part of the ASSIGN TO PRINTER clause.
ASSIGN-PRINTER"filename" causes the output to be directed to the filename specified. The filename can be fully specified, including a path-name, base-name, and extension.
ASSIGN-PRINTER() results in the same behavior as including the following COBOL statement:
select filename-1 assign to printer filename-1
That is, the filename used in your COBOL program is also used as the filename for your output. If the internal filename is too long for your operating system to handle, it is truncated to the maximum length the operating system allows.
By default, the filename does not include an extension, but you can specify an extension by using the PRINT-EXT directive.
Makes the default locking AUTOMATIC rather than EXCLUSIVE for files opened I-O or EXTEND in a multi-user environment.
>>-.---.-.----.--AUTOLOCK------------------>< .-/-+ .-NO-+
None
Default: | NOAUTOLOCK |
Phase: | Syntax check |
$SET: | Initial |
This directive does not appear in the SETTING list if its state is the same as WRITELOCK. In this case, the state of the two directives is indicated by the FILESHARE directive.
This directive is included for compatibility with earlier file-sharing products. When writing new programs you should use the locking syntax rather than this directive.
Makes the bell sound at points such as when compilation stops, either because of an error or because it has finished.
>>-.---.-.----.--BELL---------------------->< .-/-+ .-NO-+
None
Default: | NOBELL |
Phase: | Syntax check |
$SET: | Initial |
Specifies that the subscript or index value is to be checked to ensure it is within the limits defined by the OCCURS clause.
>>-.---.-.----.--BOUND--------------------->< .-/-+ .-NO-+
None
Default: | BOUND |
Phase: | Both |
$SET: | Initial |
BOUND sets NOBOUNDOPT at end.
Set to BOUND by CHECK.
For multi-dimensional tables, only the composite subscript is checked. If any of the individual subscripts or indices is beyond its limit, but the reference remains within the table, no error is produced.
Optimizes the code generated for USAGE DISPLAY subscripts.
>>-.---.-.----.--BOUNDOPT------------------>< .-/-+ .-NO-+
None
Default: | BOUNDOPT |
Phase: | Generate |
$SET: | Any |
Set to NOBOUNDOPT at end by BOUND.
If BOUNDOPT is used, any digits in a USAGE DISPLAY subscript above the size of the table are ignored.
Can only be used when NOBOUND is specified. NOBOUNDOPT must be specified if a program references beyond the end of a table.
For a table with 50 entries, a PIC 9(3) subscript is treated as PIC 9(2), with the most significant digit ignored.
Makes the Compiler produce only error numbers and no message texts.
>>-.---.-.----.--BRIEF--------------------->< .-/-+ .-NO-+
None
Default: | NOBRIEF |
Phase: | Syntax check |
$SET: | Any |
Ensures that words reserved under the Siemens BS2000 COBOL dialect are reserved words in this COBOL system, and changes the behavior of certain features to be compatible with that COBOL dialect.
>>-.---.-.----.--BS2000------------------->< .-/-+ .-NO-+
None
Default: | NOBS2000 |
Phase: | Syntax check |
$SET: | Initial |
Determines whether the BLANK WHEN ZERO clause is allowed in the Data Division for those fields defined with the "*" PICTURE symbol.
>>-.---.-.----.--BWZSTAR------------------->< .-/-+ .-NO-+
None
Default: | NOBWZSTAR |
Phase: | Syntax check |
$SET: | Any |
If BWZSTAR is specified, the BLANK WHEN ZERO clause is allowed with fields defined using the "*" PICTURE symbol, and BLANK WHEN ZERO is effective when the field is the target of an editing operation and the result is zero. If NOBWZSTAR is specified, a BLANK WHEN ZERO clause associated with a PIC * field is rejected.
Controls behavior for overlapping data items.
>>-.---.-.----.--BYTE-MODE-MOVE------------>< .-/-+ .-NO-+
None
Default: | NOBYTE-MODE-MOVE |
Phase: | Syntax check |
$SET: | Initial |
The Compiler also accepts the directive-name without hyphens; that is BYTEMODEMOVE.
This directive is provided for compatibility with IBM mainframe compilers in the handling of forward overlapping moves - that is, where the start of the target data item overlaps the end of the source data item.
If BYTE-MODE-MOVE is specified, data is moved one byte at a time from the source to the target.
If NOBYTE-MODE-MOVE is specified, the data is moved in granules of two, four or more bytes at a time (depending on environment) from the source to the target. Consequently, if the overlap is less than the size of the granule, each granule moved overwrites part of the next granule to be moved.
Causes all Format 1 ACCEPT, DISPLAY and EXHIBIT statements to be routed through the specified handler.
>>-.---.-.-------CALLADIS--"handler-name"-.-->< .-/-+ ..----.-CALLADIS-----------------+ .-NO-+
handler-name |
Root-name of a program to be called to act as the handler. |
Default: | NOCALLADIS |
Phase: | Syntax check |
$SET: | Initial |
If handler-name is not specified, EXTADIS is assumed.
Makes the Compiler generate direct calls for all file I/O operations, using the Callable File Handler interface.
>>-.---.--------CALLFH--"handler-name"-.-->< .-/-+
handler-name |
Root-name of a program to be called to act as the File Handler. |
Default: | CALLFH"EXTFH" |
Phase: | Syntax check |
$SET: | Initial |
handler-name can be one of the following:
EXTFH | The File Handler supplied with this COBOL system |
FHREDIR | For use with Fileshare Version 2 |
Your own file handler |
When CALLFH is specified, all file I/O statements are converted to calls to the file handler specified by the directive.
If handler-name is not specified, the module Extfh is assumed.
This directive is also used to direct all file handling calls through converter modules, to make use of non-COBOL file handlers.
Use this directive to make your programs call your file handler instead of the standard File Handler.
Causes all call operations to be converted to calls to the specified call handler program.
>>-.---.-.----.--CALLMAP--"handler-name"--->< .-/-+ .-NO-+
handler-name |
Root-name of a program to be called to act as the handler. |
Default: | NOCALLMAP |
Phase: | Syntax check |
$SET: | Any |
The CALLMAP directive is Early User Syntax support. You must set the EARLY-RELEASE directive to enable this feature. This directive might change or be removed in a later revision of this COBOL system.
EARLY-RELEASE Compiler directive
This directive is reserved for internal use by this COBOL system. Because it might appear in the list of settings, it is included for completeness. It is not intended for your use, and its setting should not be changed.
Causes all Message Control System operations to be routed through the specified handler.
>>-.---.-.-------CALLMCS--"mcs-name"-.----->< .-/-+ ..----.-CALLMCS-------------+ .-NO-+
mcs-name |
Root-name of a program to be called to process message control system (mcs) operations. |
Default: | NOCALLMCS |
Phase: | Syntax check |
$SET: | Initial |
If handler-name is not specified, EXTMCS is assumed.
Defines the program to be called to handle all SORT and MERGE operations.
>>-.---.-------CALLSORT--"sort-name"-.--->< .-/-+
sort-name |
Root-name of a program to be called to process sorts and merges. |
Default: | CALLSORT"EXTSM" |
Phase: | Syntax check |
$SET: | Initial |
Makes the Compiler close an .lbr file used as a library in a COPY statement once that copy operation is complete.
>>-.---.-.----.--CANCELLBR----------------->< .-/-+ .-NO-+
None
Default: | CANCELLBR |
Phase: | Syntax check |
$SET: | Any |
NOCANCELLBR causes such .lbr files to be left open until the end of the compilation. Subsequent COPY statements that do not specify a library search for the copyfile in all open .lbr libraries (last one opened is searched first) before the current directory.
This directive is only relevant if COPYLBR is on.
[NO]CANCELLBR can be used on any $SET statement. Only .lbr libraries referenced in COPY statements after the $SET statement are affected. Any left open from previous COPY statements are only closed if specified again on a COPY statement following a CANCELLBR directive.
Prevents external symbols (such as Program-ID and names of called programs) being converted to upper case.
>>-.---.-.----.--CASE---------------------->< .-/-+ .-NO-+
None
Default: | NOCASE |
Phase: | Generate |
Environment: | All |
$SET: | Any |
This is useful if you are calling a program written in C, where names are case dependent.
Changes the severity of error messages. Messages can also be suppressed or returned to their original severity.
+-------------. v | >>-.---.-.-----CHANGE-MESSAGE--"error svrty"-.->< .-/-+ .-NO--CHANGE-MESSAGE----------------+
error |
Number of message to be changed or ALL meaning all messages. | ||||||||||||
svrty |
New severity :
|
Default: | NOCHANGE-MESSAGE |
Phase: | Syntax check |
$SET: | Any |
CHANGE-MESSAGE overrides the general settings of directives such as FLAGAS.
CHANGE-MESSAGE can take as many parameter pairs as required. If CHANGE-MESSAGE is specified multiple times the effects are cumulative.
CHANGE-MESSAGE replaces the HIDE-MESSAGE Compiler directive. However, if you use HIDE-MESSAGE in conjunction with CHANGE-MESSAGE the effects are also cumulative.
Serious errors cannot have their severity reduced unless they were changed to serious (from a lower severity) by another CHANGE-MESSAGE directive or the FLAGAS or FLAGCD directives.
CHANGE-MESSAGE"ALL R" CHANGE-MESSAGE"10 S 135 E 100 N"
FLAGAS Compiler directive
FLAGCD Compiler directive
HIDE-MESSAGE Compiler directive
Defines the character set of the environment.
>>-.---.--CHARSET--"char-set"-------------->< .-/-+
char-set |
ASCII or EBCDIC. |
Default: | CHARSET"ASCII" |
Phase: | Syntax check |
$SET: | Initial |
CHARSET"ASCII" sets DEFAULTBYTE"32", SIGN"ASCII"
and NATIVE"ASCII" immediately.
CHARSET"EBCDIC" sets DEFAULTBYTE"0" immediately and
SIGN"EBCDIC" and NATIVE"EBCDIC" at end.
All literals and collating sequences are handled in the character set specified.
For current limitations see your Programmer's Guide to Writing Programs.
With CHARSET"EBCDIC" set, COBOL system library routines that receive or return alphanumeric data in any parameters do not work. The alphanumeric data must be in ASCII.
Turns on all run-time checks in generated code
>>--.----.---CHECK------------------>< .-NO-+
None
Default: | None |
Phase: | Generate |
$SET: | Initial |
CHECK sets BOUND, LINKCHECK, and PARAMCOUNTCHECK immediately
NOCHECK sets NOBOUND, NOLINKCHECK, and NOPARAMCOUNTCHECK immediately
CHECK turns on all run-time checks in generated code. The run-time checks include checks for:
NOCHECK turns off all run-time checks in generated code.
Controls the behavior of your program if it tries to divide by zero in a statement that has no ON SIZE ERROR phrase.
>>-.---.-.-------CHECKDIV--"dialect"-.----->< .-/-+ ..----.-CHECKDIV------------+ .-NO-+
dialect |
Must be ANSI, OSVS, VSC2, or COBOL370. |
Default: | CHECKDIV"ANSI" |
Phase: | Syntax check |
$SET: | Initial |
With CHECKDIV or CHECKDIV"ANSI" specified, the program continues with an undefined result if it tries to divide by zero. With NOCHECKDIV set, the behavior is undefined. Setting NOCHECKDIV results in optimal code for divides.
Specifying CHECKDIV"OSVS", CHECKDIV"VSC2", or CHECKDIV"COBOL370" has the same effect; trying to divide by zero produces run-time error 048 (Attempt to divide by zero). This error can be disabled using the -O run-time system switch.
This directive has no effect on arithmetic statements that use the ON SIZE ERROR phrase.
Checks whether numeric fields contain valid data before performing operations on them.
>>-.---.-.----.--CHECKNUM------------------>< .-/-+ .-NO-+
None
Default: | NOCHECKNUM |
Phase: | Generate |
$SET: | Initial |
Specifying this directive causes extra code to be generated to ensure that numeric fields contain valid data before any operations are performed on them. With CHECKNUM set, run-time error message 163 ("Illegal character in numeric field") is displayed if any numeric field is found to contain nonnumeric data. This error can be disabled using the -F run-time system switch.
Specifying CHECKNUM causes extra code to be produced, reducing the efficiency of your programs. For smaller, faster code you should not specify CHECKNUM.
Enables the use of CICS by updating BLL cells.
>>-.---.-.----.--CICS---------------------->< .-/-+ .-NO-+
None
Default: | NOCICS |
Phase: | Syntax check |
$SET: | No |
This directive is reserved for use with add-on CICS products supplied by MERANT. Do not change its setting unless you have an appropriate add-on product. This is not for use with CICS OS/2.
With CICS, if CICS-CPY is also set, the Compiler inserts:
COPY "CICS.CPY"
at the beginning of your Linkage Section. If your program has no Linkage Section, the Compiler inserts one as follows:
LINKAGE SECTION. COPY "CICS.CPY". 01 DFHCOMMAREA PIC X(n).
where the parameters are:
CICS.CPY
|
Contains a definition of the CICS EXEC INTERFACE BLOCK and DLI INTERFACE BLOCK compatible with Version 1, Release 6 (or earlier) of CICS. | ||||
n |
Takes one of the following values:
|
The Linkage Section item following the DFHCOMMAREA record is assumed to contain the BLL cells, each named and with the description PIC S9(8) COMP. The BLL cells are matched with the corresponding Linkage Section records according to CICS rules.
If the Compiler inserts the DFHCOMMAREA record, it is not visible during animation or in printer listings. However, the record can be queried during animation. If you intend to animate a program that uses BLL cells, set this directive on.
Inserts the statement COPY "CICS.CPY" provided the CICS directive is specified.
>>-.---.-.----.--CICS-CPY------------------>< .-/-+ .-NO-+
None
Default: | CICS-CPY |
Phase: | Syntax check |
$SET: | No |
This directive is reserved for use with add-on CICS products supplied by MERANT. Do not change its setting unless you have an appropriate add-on product. This is not for use with CICS OS/2.
Optimizes the handling of CICS BLL cells.
>>-.---.-.----.-.-CICSOPT------.----------->< .-/-+ .-NO-+ .-CICSOPTIMISE-+ .-CICSOPTIMIZE-+
None
Default: | NOCICSOPTIMIZE |
Phase: | Syntax check |
$SET: | No |
This directive is reserved for use with add-on CICS products supplied by MERANT. Do not change its setting unless you have an appropriate add-on product. This is not for use with CICS OS/2.
With NOCICSOPTIMIZE, the Compiler inserts instructions whenever a BLL cell is updated to ensure that the addressability of Linkage Section items corresponds to the current values in the BLL cells. With CICSOPTIMIZE, the Compiler does not insert these instructions. You must use the SERVICE RELOAD instruction to ensure that the addressability is updated.
Provides compatibility with the mainframe compiler option of the same name which returns behavior of the COBOL 370, VS COBOL II version 3 and VS COBOL II version 4 compilers to that of the VS COBOL II version 2 compiler.
>>-.---.-.----.--CMPR2--------------------->< .-/-+ .-NO-+
None
Default: | NOCMPR2 |
Phase: | Syntax check |
$SET: | Initial |
Requires VSC2"3", VSC2"4" or COBOL370 flagging to be selected.
A conflicting directives message is issued (with FLAGCD only) if one of the required flagging levels is not selected.
Setting this directive is not the same as setting VSC2"2". It emulates the mainframe behavior quite closely, and also causes different run-time behavior in some cases. If you use the CMPR2 directive on the mainframe with one of the specified compilers, use this directive instead of VSC2"2".
The FLAGMIG directive flags the items that give different run-time behavior.
Causes the Callable File Handler ExtFH to use the user-supplied module specified in the COBFSTATCONV environment variable to convert the file status codes if an I/O error is encountered on a file.
>>-.---.-.----.--COBFSTATCONV-------------->< .-/-+ .-NO-+
None
Default: | NOCOBFSTATCONV |
Phase: | Syntax check |
$SET: | Initial |
Specifies the path where the Animator information file (.idy file) and COBOL Source Information file (.csi) are to be written.
>>-.---.-.-------COBIDY--"pathname"-.----->< .-/-+ ..----.-COBIDY--------------+ .-NO-+
pathname |
Path specification. |
Default: | NOCOBIDY |
Phase: | Syntax check |
$SET: | No |
If you do not specify pathname, the pathname in the COBIDY environment variable is used; if the environment variable contains multiple path-names the first of them is used. With NOCOBIDY, the .idy files are written to the same path as the object program.
Specifies that words reserved in IBM COBOL/370 are to be treated as reserved words, and allows features selectively for compatibility with a given level of that product.
>>-.---.-.-------COBOL370--"integer"-.----->< .-/-+ ..----.-COBOL370------------+ .-NO-+
integer |
1 or 2. The level of IBM COBOL/370 to be compatible with. |
Default: | NOCOBOL370 |
Phase: | Syntax check |
$SET: | Initial |
COBOL370 sets DBSPACE and DBCS"3" immediately.
Setting integer to:
1 | Specifies compatibility with Version 1 Release 1 of IBM COBOL/370 |
2 | Specifies compatibility with Version 1 Release 2 of IBM COBOL for MVS and VM |
Specifying COBOL370 without a parameter is the same as specifying COBOL370"2".
Specifies whether the Compiler should process the directives in a cobol.dir file or ignore it.
>>-.---.-.----.--COBOLDIR------------------>< .-/-+ .-NO-+
None
Default: | COBOLDIR |
Phase: | Syntax check |
$SET: | No |
Makes the Compiler produce very compact and efficient code for some statements involving COMP data items, by treating COMP items as COMP-X.
>>-.---.-.----.--COMP---------------------->< .-/-+ .-NO-+
None
Default: | NOCOMP |
Phase: | Syntax check |
$SET: | Initial |
This COMP code produced by the Compiler behaves in a way that is not the ANSI standard in cases of numeric overflow. You should use this directive only if you know that your program does not lead to numeric overflow, or if you want to use the defined (but nonstandard) behavior on overflow.
Specifies whether the sign is to be dropped when a value is stored in an unsigned COMP-5 data item.
>>-.---.--COMP-5--"integer"---------------->< .-/-+
integer |
Must be 1 or 2. |
Default: | COMP-5"2" |
Phase: | Syntax check |
$SET: | Initial |
The possible values of integer are:
1 | Behavior as in earlier versions of this Compiler. The sign is dropped. |
2 | The sign is not dropped. Negative numbers are stored in two's complement form, so that, except for their byte-order being machine-dependent, unsigned COMP-5 items behave like COMP-X. This results in highly efficient arithmetic on unsigned COMP-5 items. |
Specifies whether COMP-6 data is to be held in binary or packed decimal format.
>>-.---.--COMP-6--"integer"---------------->< .-/-+
integer |
Must be 1 or 2. |
Default: | COMP-6"2" |
Phase: | Syntax check |
$SET: | Initial |
RM or MF must be set.
RM and RM"ANSI" set COMP-6"1".
NORM sets COMP-6"2".
The possible values of integer are:
1 | A binary format is used for COMP-6 data, as described in the appendix Ryan McFarland COBOL V2.0 Syntax Support in your Language Reference - Additional Topics. |
2 | Packed decimal format is used. If the item is signed, the format is identical to COMP-3. If the item is unsigned, no sign field is present. |
Even if you specify the COMP-6 directive, the reserved word COMP-6 is recognized only if it belongs to the dialect specified by RM or MF"10".
With COMP-6"2" specified:
PIC 99 COMP-6 VALUE 87 is stored in one byte as x"87"
PIC S99 COMP-6 VALUE 87 is stored in two bytes as x"087C"
Allows your program to contain syntax introduced in the Communications Module of the ANSI'85 COBOL Standard.
>>-.---.-.----.--COMS85-------------------->< .-/-+ .-NO-+
None
Default: | NOCOMS85 |
Phase: | Syntax check |
$SET: | Initial |
Declares a constant for use in the program.
>>-.---.-CONSTANT-const-name-.-(numeric-lit)--.->< .-/-+ .-"alphanum-lit"-+
const-name |
Data-name. The constant's name. |
numeric-lit |
Numeric literal. The constant's value. Must be zero or a positive integer. |
alphanum-lit |
Alphanumeric literal. The constant's value. |
Default: | Not set |
Phase: | Syntax check |
$SET: | Any |
The effect is as if the constant const-name had been defined in the program in a level-78. Its value is that given in the parentheses or quotation marks. If parentheses are used, the constant is of category numeric; if quotation marks are used it is of category alphanumeric.
To declare several figurative constants using this feature, use the CONSTANT directive repeatedly.
Causes COMP and COMP-X items specified in CALL ... RETURNING and EXIT PROGRAM ... RETURNING phrases to be converted to COMP-5.
>>-.---.-.----.--CONVERTRET---------------->< .-/-+ .-NO-+
None
Default: | NOCONVERTRET |
Phase: | Syntax check |
$SET: | Initial |
Converts double-byte space characters in COBOL source files to single-byte spaces on input.
>>-.---.-.----.--CONVSPACE----------------->< .-/-+ .-NO-+
None
Default: | CONVSPACE |
Phase: | Syntax check |
$SET: | Initial |
CONVSPACE only has an effect when the DBSPACE Compiler directive is off.
Specifies the filename extension of the copyfile that the Compiler is to look for if a filename in a COPY statement is specified without an extension.
+-------------. v | >>-.---.--COPYEXT-"extension-.-------------.-"-->< .-/-+ .-,-extension-+
extension |
A filename extension. |
Default: | COPYEXT",cbl,cpy" |
Phase: | Syntax check |
$SET: | Initial |
Up to eight extensions can be specified, each extension being up to 10 characters long. A null extension is used to represent an extension of spaces; for example:
COPYEXT"src,,txt"
would first look for files with the extension .src, then for files with no extension, and then for files with the extension .txt.
If the filename specified in a COPY statement has no extension or trailing period then a list of possible extensions are tried in turn until a file is successfully found or the list is exhausted (and an error reported).
If you have many COPY statements that do not specify an extension, using COPYEXT can improve the compilation speed of your program. For example, if all your copyfiles have the filename extension .cpy, specifying COPYEXT"CPY.CBL" would avoid unnecessary file access attempts.
Makes the Compiler treat the library specified in a COPY statement as an .lbr file.
>>-.---.-.----.--COPYLBR------------------->< .-/-+ .-NO-+
None
Default: | NOCOPYLBR |
Phase: | Syntax check |
$SET: | No |
With NOCOPYLBR, the Compiler assumes that the library is a path-name.
Makes the Compiler list the contents of files named in COPY statements.
>>-.---.-.----.--COPYLIST-.-----------.---->< .-/-+ .-NO-+ .-"integer"-+
integer |
Must be 0 or between 50 and 99. |
Default: | COPYLIST |
Phase: | Syntax check |
$SET: | Any |
integer is the number of a COBOL segment. It must be 0 or in the range 50 through 99. If it is not specified, the contents of all copyfiles are listed. If it is specified, the contents of all copyfiles in the first three divisions (that is, the Identification, Environment and Data Divisions), the root, and the given segment are listed. An integer of 0 refers to the first three divisions and all root segments.
NOCOPYLIST prevents the listing of the contents of any copyfiles. If a segment-number is specified with NOCOPYLIST, only copyfiles in that segment are listed. For example:
COPYLIST"53" | List all copyfiles in the first three divisions, the root segment, and segment 53. |
NOCOPYLIST"53" | List only copyfiles that are in segment 53. |
Whatever the state of this directive, the name of any copyfile open when a page heading is output is given in that heading.
Specifies the currency sign to be recognized in the PICTURE clause.
>>-.---.--CURRENCY-SIGN--"integer"--------->< .-/-+
integer |
ASCII code of the character, in decimal. |
Default: | CURRENCY-SIGN"36" (that is, "$") |
Phase: | Syntax check |
$SET: | Initial |
You cannot specify a valid PICTURE clause symbol. See your Language Reference for a list of these.
Specifies the format of the date stored in the CURRENT-DATE special register.
>>-.---.--CURRENT-DATE--"date-format"------>< .-/-+
date-format |
Either DDMMYYYY or MMDDYYYY. |
Default: | CURRENT-DATE"MMDDYYYY" |
Phase: | Syntax check |
$SET: | Any |
DDMMYYYY causes CURRENT-DATE to be stored in European format. The parameter can be specified in either upper case or lower case.
Specifies the type of data compression to be done on sequential and indexed files.
>>-.---.-.-----DATACOMPRESS--"integer"-.--->< .-/-+ .-NO--DATACOMPRESS------------+
integer |
Must be one of:
|
Default: | NODATACOMPRESS |
Phase: | Syntax check |
$SET: | Any |
The only values that can be specified for data compression for the File Handler are 1 and 3. Values in the range 128 through 255 indicate user-defined compression routines for user-defined file handlers..
You need to specify data compression only when creating the file. Subsequently, the data compression is detected when the file is opened.
To get data compression on an individual file, use $SET statements in your source so that this directive is in effect only for the part of the source containing the file's SELECT statement.
Data compression is supported only by the Callable File Handler. All indexed files are processed by the Callable File Handler. If you want to use data compression with sequential files, every program referencing those files must be compiled with the directive CALLFH"EXTFH".
Puts the date in the Date-Compiled paragraph and at the top of each page of the listing.
>>-.---.-.-------DATE--"string"-.---------->< .-/-+ ..----.-DATE-----------+ .-NO-+
string |
An alphanumeric literal. |
Default: | DATE |
Phase: | Syntax check |
$SET: | No |
The date and time, available from the operating system, are automatically inserted when you specify DATE. You can, however, enter the date yourself as the parameter. With NODATE, the paragraph is left unaltered.
With DATE, the operating system date or the string you enter appears at the top of each page of the listing. With NODATE, spaces are used instead.
Makes the Compiler check that any double-byte character set (DBCS) literals only contain valid 16-bit DBCS characters.
>>-.---.-.----.--DBCHECK------------------->< .-/-+ .-NO-+
None
Default: | NODBCHECK |
Phase: | Syntax check |
$SET: | Initial |
If you specify DBCHECK in environments that support validation of DBCS data, any literal that does not contain only valid 16-bit DBCS characters results in syntax error 1048 (DBCS literal includes invalid data).
Makes the Compiler accept characters of the double-byte character set (DBCS) for use in ideographic languages such as Japanese, Chinese and Korean.
>>-.---.-.-------DBCS--"integer"-.--------->< .-/-+ ..----.-DBCS------------+ .-NO-+
integer |
Must be 1, 2 or 3. Indicates which compatibility is required. |
Default: | NODBCS |
Phase: | Syntax check |
$SET: | Initial |
Set to DBCS"2" immediately by SAA, VSC2"2", VSC2"3"
or MF"7".
Set to DBCS"3" immediately by COBOL370 or MF"integer"
where integer > 7.
The possible values of integer are:
1 | Behavior as in earlier versions of this Compiler. |
2 | Provides full System Application Architecture (SAA) DBCS support. This directive sets DBSPACE. |
3 | Includes DBCS support as in IBM COBOL/370. This includes the use of PIC N, PIC G, and DBCS literals specified with "delimiter N". |
Defines the two characters used as the shift-out and shift-in delimiters in DBCS literals.
>>-.---.-.----DBCSSOSI-"integer-1"-"integer-2"-.-->< .-/-+ .-NO-DBCSSOSI-------------------------+
integer-1 |
ASCII code of the shift-out character, in decimal. |
integer-2 |
ASCII code of the shift-in character, in decimal. |
Default: | NODBCSSOSI |
Phase: | Syntax check |
$SET: | Any |
When shift-out and shift-in characters are specified by this directive, every DBCS literal must have the shift-out character immediately after the opening quotation mark and the shift-in character immediately before the closing quotation mark. They act as additional delimiters to the literal, and are not part of its value. With NODBCSSOSI, no shift-out and shift-in characters are needed or recognized.
Makes the Compiler interpret the figurative constant SPACE, when used as a DBCS figurative constant, as the double-byte space character supplied by the system.
>>-.---.-.----.--DBSPACE------------------->< .-/-+ .-NO-+
None
Default: | Depends on the setting of MF"integer". If integer is greater than 7, the default is DBSPACE. Otherwise, it is NODBSPACE. |
Phase: | Syntax check |
$SET: | Any |
DBSPACE set immediately by COBOL370, NCHAR"2", SAA, VSC2"2"
or VSC2"3".
DBSPACE set immediately by MF"integer" where integer
> 7
With DBSPACE, the Compiler uses the system-supplied double-byte space character. NODBSPACE provides compatibility with previous versions of this Compiler, where the double-byte space character was two ASCII space characters (x"2020").
Specifies the behavior of de-editing moves from numeric-edited items to other numeric-edited items or to numeric items.
>>-.---.--DE-EDIT--"integer"--------------->< .-/-+
integer |
Must be 1 or 2. Indicates which compatibility required. |
Default: | DE-EDIT"2" |
Phase: | Syntax check |
$SET: | Any |
The possible values of integer are:
1 | Behavior as in earlier versions of this Compiler. Ignores the PICTURE clause of the sending field. |
2 | De-edits according to the PICTURE clause of the sending field. This provides ANSI'85 conformance. |
01 a pic 909V99 value "30456". 01 b pic 9(5). ... move a to b
With DE-EDIT"1", b contains 30456. With DE-EDIT"2", b contains 00034; the 0 after the 3 is dropped because it corresponds to the insertion character 0 in the picture-string of a, and the .56 is dropped because B has no decimal places.
Initializes each otherwise undefined byte of the Data Division to the character given.
>>-.---.--DEFAULTBYTE--"integer"----------->< .-/-+
integer |
ASCII code of the character, in decimal. |
Default: | DEFAULTBYTE"32" |
Phase: | Syntax check |
$SET: | Initial |
Set to DEFAULTBYTE"32" immediately by CHARSET"ASCII".
Set to DEFAULTBYTE"0" immediately by CHARSET"EBCDIC",
MS, IBM-MS or PC1.
integer is a decimal value. For example, if you want to specify an EBCDIC space use DEFAULTBYTE"64"; to specify an ASCII space use DEFAULTBYTE"32".
Specifies the default calling convention.
>>-.---.-.-------DEFAULTCALLS--"integer"-.->< .-/-+ ..----.-DEFAULTCALLS------------+ .-NO-+
integer |
Default calling convention |
Default: | NODEFAULTCALLS |
Phase: | Syntax check |
$SET: | Any |
DEFAULTCALLS without the optional parameter specifies that the calling convention specified in the PROCEDURE DIVISION USING statement is to be used as the default calling convention.
DEFAULTCALLS"integer" specifies that the calling convention indicated by "integer" is to be used as the default calling convention.
NODEFAULTCALLS is equivalent to DEFAULTCALLS"0".
Individual CALL statements can override these defaults (see your Language Reference). See the section Call Conventions in the chapter The COBOL Interfacing Environment in your Programmer's Guide to Writing Programs for a list of available calling conventions.
Makes READ statements detect when a record is locked by another program.
>>-.---.-.----.--DETECT-LOCK--------------->< .-/-+ .-NO-+
None
Default: | DETECT-LOCK |
Phase: | Syntax check |
$SET: | Initial |
The Compiler also accepts the name without a hyphen; that is DETECTLOCK
With DETECT-LOCK, if a READ statement reads a record locked by another program, it returns an I/O status of 9/068. With NODETECT-LOCK, it returns 0/000. In both cases it reads the record successfully.
If a READ statement attempts to lock a record (that is, if the statement LOCK MODE IS AUTOMATIC has been specified, or a WITH LOCK phrase is used on the READ statement), and the record is locked by another program, an I/O status of 9/068 is returned. If NODETECT-LOCK is specified, and the READ statement is not attempting to lock a record an I/O status of 0/000 is returned.
Changes the behavior of certain features to be compatible with Data General Interactive COBOL rev 1.30.
>>-.---.-.----.--DG------------------------>< .-/-+ .-NO-+
None
Default: | NODG |
Phase: | Syntax check |
$SET: | Initial |
See your Language Reference - Additional Topics for details of syntax support for Data General Interactive COBOL rev 1.30.
Enables check-time and run-time behavior consistent with the specified dialect.
>>----------DIALECT"dialect"-------><
dialect |
A dialect. See Comments below. |
Depending on the setting of dialect, various other Compiler directives are set by default. See Comments below.
Default: | DIALECT"ANS85" |
$SET: | Initial |
There is no explicit NODIALECT setting. DIALECT(dialect) is equivalent to USE(WBdialect.dir) in other Micro Focus COBOL systems.
dialect can be:
If you set DIALECT to any of these values, various other Compiler directives are set. These are shown below.
Makes the Compiler read directives from a file.
>>-.---.-.-DIRECTIVES-.-"filename"--------->< .-/-+ .-DIR--------+
filename |
A full file specification. |
Default: | None |
Phase: | Syntax check |
$SET: | Any |
A directives file is a text file containing directives. Directives are separated by a space or the end of line. A directive cannot be broken across two lines.
You can include a comment line with an ampersand (&) in column 1, followed by a space. If you omit the space the comment is treated as a directive, and the syntax check on that file fails.
The directives are read from the file until the end of file is reached or another DIRECTIVES directive is encountered. The maximum length of a line is 128 characters.
You can specify more than one directives file in a program by specifying several DIRECTIVES"filename". If you specify the DIRECTIVES directive in a directives file, the Compiler switches to the new directives file, reads all the directives in it, returns to the original directives file, and continues to read the directives specified after the DIRECTIVES directive. You can nest directives files to any depth.
The directives file is searched for in the current and COBOL system directories. If no extension is specified, a file extension of .dir is assumed. If no file is found, the search is repeated with no extension.
Makes the Compiler process $SET statements held in comment lines.
>>-.---.-.----.--DIRECTIVES-IN-COMMENTS---->< .-/-+ .-NO-+
None
Default: | NODIRECTIVES-IN-COMMENTS |
Phase: | Syntax check |
$SET: | Any |
This directive enables sources to contain directives used when compiling with the Server Express Compiler, but ignored (as comment lines) by any other compiler, such as a mainframe compiler.
Normally, $SET can appear anywhere on a line, as long as it is the first thing on the line. However, if this directive is set, the $SET statement is processed even if the line is a comment line (asterisk in column 7).
Specifies that words reserved in IBM DOS/VS COBOL are to be treated as reserved words.
>>-.---.-.----.--DOSVS--------------------->< .-/-+ .-NO-+
None
Default: | NODOSVS |
Phase: | Syntax check |
$SET: | Initial |
Set to NODOSVS immediately by OSVS.
Specifies that CANCEL statements are not to be ignored.
>>-.---.-.----.--DYNAM--------------------->< .-/-+ .-NO-+
None
Default: | DYNAM |
Phase: | Syntax check |
$SET: | Initial |
With NODYNAM, CANCEL statements in the program are ignored.
Enables support for Early User Syntax.
>>-.---.-.----.--EARLY-RELEASE------------->< .-/-+ .-NO-+
None
Default: | NOEARLY-RELEASE |
Phase: | Syntax check |
$SET: | Initial |
If NOEARLY-RELEASE and MF are set, MF defaults to MF"10".
If EARLY-RELEASE and MF are set, MF defaults to MF"11".
You must specify this directive if you want to use any of the early-release directives.
Makes the Compiler display error lines and error messages on the screen.
>>-.---.-.----.--ECHO---------------------->< .-/-+ .-NO-+
None
Default: | ECHO |
Phase: | Syntax check |
$SET: | Any |
Set to NOECHO immediately by ECHOALL.
For each error, the source line is displayed together with an error number and (unless BRIEF is set) an explanatory message.
Sends a full listing to the screen as well as to a printer or other device specified with the LIST or PRINT directive.
>>-.---.-.----.--ECHOALL------------------->< .-/-+ .-NO-+
None
Default: | NOECHOALL |
Phase: | Syntax check |
$SET: | No |
ECHOALL sets NOECHO immediately.
Makes the Compiler send error messages to a file in a format compatible with a specified editor.
>>-.---.-.-----EDITOR--"editor-id"-.------->< .-/-+ .-NO--EDITOR--------------+
editor-id |
Must be MF, MF2 or MS. |
Default: | NOEDITOR |
Phase: | Syntax check |
$SET: | No |
EDITOR"MS" sets NOENSUITE immediately.
EDITOR"MF" sets ENSUITE"1" immediately.
The possible values of editor-id are:
MF | Server Express Editor |
MF2 | Animator |
MS | Microsoft Programmer's Workbench |
You are recommended to use the NOECHO and NOQUERY directives in addition to the EDITOR directive.
ECHO Compiler directive
FLAGSINEDIT Compiler directive
QUERY Compiler directive
Reserved for internal use only.
Specifies that the listing is to contain no source lines except those that have errors or flags.
>>--.---.--.----.---ERRLIST---"option"-------->< .-/-+ .-NO-+
option | Type of listing produced. See Comments below. |
Default: | ERRLIST"EMBED" |
Phase: | Syntax check |
$SET: | No |
ERRLIST"END"is switched to ERRLIST"VERBOSE" if FLAGQ or ERRQ are set.
The possible values of option are:
TERSE | Only lines containing errors are shown in the list file. Both source line and error are shown. |
EMBED | List file contains source listing with error messages embedded within it at the point they occur. |
END | List file contains source listing followed by error messages separately. In a batch compile, no error messages are echoed to screen unless a screen listing is selected. |
VERBOSE | List file contains source listing with error messages embedded within it at the point they occur followed by error messages relisted separately. |
Makes the Compiler ask, each time it gives an error message, whether you want to stop compiling.
>>-.---.-.----.--ERRQ---------------------->< .-/-+ .-NO-+
None
Default: | NOERRQ |
Phase: | Syntax check |
$SET: | Any |
This directive is reserved for internal use by this COBOL system. Because it might appear in the list of settings, it is included for completeness. It is not intended for your use, and its setting should not be changed.
>>-.---.-.----.--FASTSORT------------------>< .-/-+ .-NO-+
None
Default: | FASTSORT |
Phase: | Syntax check |
$SET: | Initial |
This directive is reserved for internal use by this COBOL system. Because it might appear in the list of settings, it is included for completeness. It is not intended for your use, and its setting should not be changed.
>>-.---.-.----.--FCD3---------------------->< .-/-+ .-NO-+
None
Default: | FCD3 on 64-bit development systems NOFCD3 on 32-bit development systems |
Phase: | Syntax check |
$SET: | No |
Set to FCD3 immediately by P64.
Makes the Compiler define special-registers giving access to File Control Descriptions (FCD) and Key Definition Blocks.
>>-.---.-.----.--FCDREG-------------------->< .-/-+ .-NO-+
None
Default: | NOFCDREG |
Phase: | Syntax check |
$SET: | Initial |
FCDREG causes a special register, FH--FCD, to be created for each File Definition (FD) in the program. This register points to the File Control Description (FCD) for the file. Thus the program can read or change information in the FCD.
For each indexed file, an additional special register, FH--KEYDEF, is created. This register points to the Key Definitions Block for the file.
The layout of the FCD and the Key Definition Block is given in your File Handling book.
Specifies that the record buffer for a file should be cleared after every write operation. The buffer is cleared to the value specified by the DEFAULTBYTE directive.
>>-.---.-.----.--FDCLEAR------------------->< .-/-+ .-NO-+
None
Default: | NOFDCLEAR |
Phase: | Syntax check |
$SET: | Any |
The FDCLEAR directive is effective while the SELECT clauses are being processed. Use $SET statements before and after each SELECT clause to apply this feature to selected files. Alternatively, use it once before processing any SELECT statements to apply it to all files in a program.
The FDCLEAR directive is ignored for files subject to a SAME RECORD AREA clause in the I-O-Control paragraph.
In the following code, FDCLEAR is applied only to file-2:
file-control. select file-1 ... $set fdclear select file-2 ... $set nofdclear select file-3 ...
Causes the default locking to become AUTOMATIC rather than EXCLUSIVE for files in a multi-user environment, and automatically locks records on a WRITE or REWRITE statement when the program is locking multiple records.
This directive is not related in any way to Fileshare Version 2.
You must not use this directive when using Fileshare Version 2.
>>-.---.-.----.--FILESHARE----------------->< .-/-+ .-NO-+
None
Default: | NOFILESHARE |
Phase: | Syntax check |
$SET: | Initial |
This directive is included for compatibility with earlier file-sharing products. When writing new programs you should use the locking syntax rather than this directive.
FILESHARE is equivalent to WRITELOCK and AUTOLOCK together. NOFILESHARE is equivalent to NOAUTOLOCK and NOWRITELOCK together.
Specifies the file format to use when creating files.
>>-.---.--FILETYPE--"integer"-------------->< .-/-+
integer |
An integer representing the type to use. |
Default: | FILETYPE"0" |
Phase: | Syntax check |
$SET: | Any |
FILETYPE"integer" sets IDXFORMAT"integer" immediately.
The possible values of integer are:
0 | System specific default. This is the same as specifying 1. |
1 | C-ISAM format. |
2 | Micro Focus Level II format. |
3 | Micro Focus indexed file format. |
4 | Optimized Micro Focus indexed file format, for fast duplicate file handling. |
5 | Reserved. |
6 | Reserved. |
7 | RLIO format indexed files. |
8 | Large indexed files. |
9-10 | Reserved. |
11 | Mainframe print file format. |
12-13 | Reserved. |
14 | Reserved. |
15-255 | Reserved. |
This directive only works on files processed by the Callable File Handler. Use the CALLFH directive if you are processing files other than indexed files.
To produce print files in the style of an IBM mainframe using FILETYPE"11", you must also:
select printfile assign "print" organization is sequential.
(Print files in the style of an IBM mainframe have print control character in the first column.)
ADV Compiler directive
CALLFH Compiler directive
Makes the Compiler produce language-level certification flags when it finds syntax that is not part of a specified dialect of COBOL.
>>-.---.-.-----FLAG--"dialect"-.----------->< .-/-+ .-NO--FLAG------------+
dialect |
A literal identifying the dialect. |
Default: | NOFLAG |
Phase: | Syntax check |
$SET: | Any |
The possible values of dialect are:
MF | Micro Focus |
ANS74 | ANSI COBOL standard X3.23, 1974 |
ANS85 | ANSI COBOL standard X3.23, 1985 |
SAA | Full implementation of IBM's System Application Architecture definition of COBOL |
VSC2 | IBM VS COBOL II |
OSVS | IBM OS/VS COBOL |
DOSVS | IBM DOS/VS COBOL |
COBOL370 | IBM COBOL/370 |
ISO2000 | Proposed ISO2000 COBOL standard. |
BS2000 | Siemens BS2000 COBOL |
You cannot use DG, RM or MS as a dialect.
When creating a program that is to be fully ANSI'85 conforming, use:
ANS85 FLAG"ANS85"
and correct anything that causes a flagging message to be produced.
For VSC2, the flagging given depends on the version of VS COBOL II selected by the VSC2 directive. For SAA, the flagging given depends on the level of SAA selected by the SAA directive. For COBOL370, the flagging depends on the level of COBOL/370 selected by the COBOL370 directive.
BS2000 Compiler directive
DIALECT Compiler directive
ISO2000 Compiler directive
Makes the Compiler output flagging messages as error messages, warning messages or informational messages.
>>-.---.-.-----FLAGAS--"severity"-.-------->< .-/-+ .-NO--FLAGAS-------------+
severity |
A literal showing the severity to assign to flag messages. |
Default: | NOFLAGAS |
Phase: | Syntax check |
$SET: | Any |
The possible values of severity are:
S | Severe error |
E | Error |
W | Warning |
I | Informational |
When used with the FLAG directive, FLAGCD flags any directive settings that cause incompatibility with the specified dialect of COBOL.
>>-.---.-.--------FLAGCD--"severity"-.----->< .-/-+ ..----.--FLAGCD-------------+ .-NO-+
severity |
A literal showing the severity to assign to flag messages arising from conflicting directives. |
Default: | NOFLAGCD |
Phase: | Syntax check |
$SET: | Any |
The possible values of severity are:
S | Severe error |
E | Error |
W | Warning |
I | Informational |
If FLAGCD is specified with no parameters, the messages are assigned the severity given by the FLAGAS directive, if specified; if FLAGAS is not specified, they are produced as flagging messages.
Causes the Compiler to flag any syntax that behaves differently at run time depending on the setting of CMPR2.
>>-.---.-.----.--FLAGMIG------------------->< .-/-+ .-NO-+
None
Default: | NOFLAGMIG |
Phase: | Syntax check |
$SET: | Any |
Such syntax receives W-level messages, with the additional text "MIGR" in the message line to show the warning results from specifying the FLAGMIG directive.
Makes the Compiler ask, each time it gives a flagging message, whether you want to stop compiling.
>>-.---.-.----.--FLAGQ--------------------->< .-/-+ .-NO-+
None
Default: | NOFLAGQ |
Phase: | Syntax check |
$SET: | Any |
Specifies whether flagging messages are to be included in an error file.
>>-.---.-.----.--FLAGSINEDIT--------------->< .-/-+ .-NO-+
None
Default: | FLAGSINEDIT |
Phase: | Both |
$SET: | No |
This directive has no effect if NOEDITOR is specified. If EDITOR and FLAGSINEDIT are specified, the error file produced contains all flagging messages produced by the Compiler.
Makes the Compiler produce language-level certification flags when it finds syntax that is not part of a specified level of the ANSI'85 Standard.
>>-.---.-.-----FLAGSTD--"string"-.--------->< .-/-+ .-NO--FLAGSTD-----------+
string |
List of language levels |
Default: | NOFLAGSTD |
Phase: | Syntax check |
$SET: | Initial |
string contains a list of parameters, each defining a language level or optional module of the ANSI Standard. A feature is not flagged if it is in one of the specified levels or below, or in one of the specified optional modules. A feature is flagged if it is an extension, in a higher level of the Standard, or in an optional module not specified. In addition, it is possible to flag elements identified as Obsolete by the ANSI Standard.
string consists of a combination of the following parameters:
M | ANSI'85 defined Minimum COBOL subset |
I | ANSI'85 defined Intermediate COBOL subset |
H | ANSI'85 defined High COBOL subset |
C1 | Communications optional module level 1 |
C2 | Communications optional module level 2 |
D1 | Debug optional module level 1 |
D2 | Debug optional module level 2 |
S1 | Segmentation optional module level 1 |
S2 | Segmentation optional module level 2 |
R | Report writer optional module |
O | Obsolete language elements |
They can appear in any order but must be separated by at least one space. The following combination of flags can be specified:
FLAG and FLAGSTD provide similar functionality and thus only one can be used.
The ANS85 directive must be on.
Folds the identifier and/or literal associated with CALL, CANCEL, ENTRY, and CHAIN statements and the program-name in the PROGRAM-ID paragraph to upper or lower case.
>>-.---.-.-----FOLD-CALL-NAME--"case"-.---->< .-/-+ .-NO--FOLD-CALL-NAME---------+
case |
UPPER or LOWER |
Default: | NOFOLD-CALL-NAME |
Phase: | Syntax check |
$SET: | Initial |
The Compiler also accepts the directive-name without hyphens; that is FOLDCALLNAME.
In a CALL identifier statement, the name called is given the case specified by this directive, but the actual contents of identifier are not changed.
The FOLD-CALL-NAME directive can help in the transfer of COBOL code from an environment with filenames which are not case specific to one which is, for example, from OS/2 to UNIX.
It also makes the Compiler conform with the ANSI'85 standard interprogram communications module, in which the case of a program-name in a CALL statement does not matter.
With NOFOLD-CALL-NAME, by normal COBOL convention the program-name is folded to upper case unless enclosed in quotes. This also applies to the root program of a nested program. All the subprogram-names are folded to upper case even when in quotes. (Enclosing program-names in quotes is a Micro Focus COBOL extension. See the section The Program-Id Paragraph in your Language Reference.)
The program-name is also accessible as an entry point in a fully linked executable.
Determines whether copyfile names should be converted to upper case or lower case.
>>-.---.-.-----FOLD-COPY-NAME--"case"-.---->< .-/-+ .-NO--FOLD-COPY-NAME---------+
case |
"UPPER" or "LOWER". |
Default: | NOFOLD-COPY-NAME |
Phase: | Syntax check |
$SET: | Any |
The Compiler also accepts the directive-name without hyphens; that is FOLDCOPYNAME.
The FOLD-COPY-NAME directive affects both text and library-names regardless of whether they are specified as user-defined words or literals.
Specifying FOLD-COPY-NAME"UPPER" converts copyfile names to upper case (also known as folding to upper case).
Specifies the number of lines on each page of the listing.
>>-.---.-.-----FORM--"integer"-.----------->< .-/-+ .-NO--FORM------------+
integer |
Must be greater than 3. |
Default: | FORM"60" |
Phase: | Syntax check |
$SET: | Any |
Set to NOFORM at end by NOLIST.
Set to FORM"60" immediately by LIST.
With FORM"integer", a form-feed character is always produced at the head of the listing file. With NOFORM, no form-feed characters or page headings are produced anywhere in the listing.
Determines whether one floating-point receiving item can affect the results of other, non-floating-point receiving items.
>>-.---.-.-----FP-ROUNDING--"dialect"---.-->< .-/-+ .-NO--FP-ROUNDING--------------+
dialect |
Must be VSC2 or OSVS. |
Default: | NOFP-ROUNDING |
Phase: | Syntax check |
$SET: | Any |
In OS/VS COBOL and VS COBOL II, if any of the sending data items of an arithmetic statement are floating-point, all receiving fields are rounded, regardless of the presence or absence of the ROUNDED phrase and regardless of whether or not the receiving fields are floating-point.
In VS COBOL II, if any receiving data item is defined as floating-point, rounding takes place for all receiving data items regardless of the presence or absence of the ROUNDED phrase, of whether or not the receiving field is floating-point, and of whether or not there are any sending items which are floating-point.
With NOFP-ROUNDING, no rounding takes place for fixed-point targets in calculations involving floating-point operands unless the ROUNDED phrase is explicitly used in the source.
If two data items are defined as follows:
05 numeric-field pic 999. 05 floating-field comp-1.
and the following statement is executed:
compute numeric-field floating-field = 7.7 + 1
specifying FP-ROUNDING"VSC2" results in numeric-field containing 9 (rounded), whereas specifying NOFP-ROUNDING or FP-ROUNDING"OSVS" would result in numeric-field containing 8 (truncated).
If, using the same two data items, the following statement is executed:
compute numeric-field = +7.6E0
specifying FP-ROUNDING"VSC2" or FP-ROUNDING"OSVS" results in numeric-field containing 8 (rounded), whereas specifying NOFP-ROUNDING results in numeric-field containing 7 (truncated).
Enables you to use the GNT Analyzer, which is a stand-alone tool for creating a statistical execution profile of a program.
>>-.---.-.-----GNTANLZ--"count-type"-----.---->< .-/-+ .-NO--GNTANLZ-------------------+
count-type |
The type of count needed. |
Default: | NOGNTANLZ |
Phase: | Syntax check |
$SET: | Any |
Possible values of count-type
are:
COUNT | Count the number of times each block is executed. |
TICK | For each block of code, set the count to one when it is executed. This uses less memory than COUNT |
The chapter GNT
Analyzer in your Utilities Handbook.
This directive has been replaced by the directive CHANGE-MESSAGE. It remains for compatibility only, and will be removed in a future release.
Registers the number of a syntax check error message to "hide" so that if the error is encountered it is ignored.
>>-.---.-.-----HIDE-MESSAGE--"integer"-----.---->< .-/-+ | | .-NO--HIDE-MESSAGE--.-----------.-+ .-"integer"-+
integer |
The number of the syntax check error message to hide. |
Default: | NOHIDE-MESSAGE |
Phase: | Syntax check |
$SET: | Any |
The Compiler also accepts the directive-name without a hyphen; that is HIDEMESSAGE.
HIDE-MESSAGE"integer" adds integer to a list of syntax check error message numbers. To hide several error message numbers using this feature, you must use the HIDE-MESSAGE directive repeatedly.
When the program is being syntax checked, any message with severity E, W, I, or flag with its number in the list is not shown in any listing. It is not included in the error summary at the end of the compilation.
Messages with severity S can be hidden only if they were made severity S by the CHANGE-MESSAGE, FLAGAS or FLAGCD directives. Normally, they are always shown, even if their number appears in this list.
NOHIDE-MESSAGE clears the list of numbers so no messages are hidden.
NOHIDE-MESSAGE"integer" removes only the specified message number from the list.
CHANGE-MESSAGE Compiler directive
FLAGAS Compiler directive
FLAGCD Compiler directive
Specifies that the record area associated with a file should only be allocated at the time of an OPEN statement and not before.
>>-.---.-.----.--HOSTFD-------------->< .-/-+ .-NO-+
None
Default: | NOHOSTFD |
Phase: | Syntax check |
$SET: | Initial |
If you specify this directive, operations on the record area associated with a file are only possible while the file is open. HOSTFD does not affect EXTERNAL or SORT files. Nor does it affect files defined in a SAME RECORD AREA clause in the I-O CONTROL paragraph.
This directive is for mainframe compatibility.
Controls the operation of comparisons between integer numeric data items of USAGE DISPLAY and alphanumeric literals or figurative constants.
>>--.---.--.------HOST-NUMCOMPARE--"integer"--.-->< .-/-+ .-NO---HOST-NUMCOMPARE-------------+
integer | Must be 1 or 2 |
Default: | NOHOST-NUMCOMPARE |
Phase: | Syntax check |
$SET: | Any |
The value you can set for integer are:
1 | If the ZWB directive is also specified,
HOST-NUMCOMPARE only affects comparisons involving unsigned numeric data
items. If NOZWB is specified, HOST-NUMCOMPARE affects comparisons
involving both signed and unsigned data items.
If HOST-NUMCOMPARE is specified, affected comparisons are treated as if the numeric data item were redefined as an alphanumeric item of the same length, and the comparison made against this redefinition. If NOHOST-NUMCOMPARE is specified, the numeric field is first moved to an elementary alphanumeric data item of the same size, and the content of this alphanumeric item is then compared to the literal. |
2 | Improves compatibility with IBM mainframe compilers for a subset of IF statements involving comparisons between numeric data items and numeric literals. Setting HOST-NUMCOMPARE"2" does not provide 100% compatibility with the IBM mainframe behavior, but does provide emulation for the most common cases. |
The HOST-NUMCOMPARE directive only affects comparisons where the numeric data item contains non-numeric data at the time of the comparison.
Ensures that run-time error 163 (illegal characters in numeric fields) does not occur when certain MOVE statements are executed on numeric display data items.
>>--.---.--.------HOST-NUMMOVE--"integer"--.-->< .-/-+ .-NO---HOST-NUMMOVE-------------+
integer | Must be 1 or 2. |
None
Default: | NOHOST-NUMMOVE |
Phase: | Syntax check |
$SET: | Any |
Possible values of integer are:
1 | Improves compatibility with IBM mainframe compilers. However, although this setting the directive to this value causes the error to be suppressed, the result of moving the invalid data is not the same as on the mainframe. |
2 | Improves compatibility with IBM mainframe
compilers for a subset of MOVE statements involving numeric/alphanumeric
data types and numeric/numeric data types.
HOST-NUMMOVE"2" does not provide 100% compatibility with the IBM mainframe behavior, but does provide emulation for the most common cases. |
Specifying HOST-NUMMOVE with no parameter is the same as specifying HOST-NUMMOVE"1".
Run-time system error 163
Allows arithmetic and moves with COMP-3 items with illegal sign nibbles (such as those produced by a redefinition of the item) to produce the desired result.
>>-.---.-.----.---HOSTSIGNS---------------->< .-/-+ .-NO-+
None
Default: | NOHOSTSIGNS |
Phase: | Generate |
$SET: | Initial |
Specifying HOSTSIGNS causes COMP-3 arithmetic to be performed by a non-optimized route, reducing the efficiency of your programs.
For smaller, faster code you should not specify HOSTSIGNS.
Specifies that words reserved in IBM COBOL V1.00 are to be regarded as reserved words, and changes the behavior of certain features to be compatible with that COBOL system.
>>-.---.-.----.--IBM-MS-------------------->< .-/-+ .-NO-+
None
Default: | NOIBM-MS |
Phase: | Syntax check |
$SET: | Initial |
IBM-MS sets DEFAULTBYTE"0" and ACCEPTREFRESH immediately.
This directive is synonymous with the PC1 and MS"1" directives.
Turns on word-storage mode.
>>-.---.-.----.--IBMCOMP------------------->< .-/-+ .-NO-+
None
Default: | NOIBMCOMP |
Phase: | Syntax check |
$SET: | Initial |
IBMCOMP sets ALIGN"8" immediately.
In word-storage mode every data item of USAGE COMP or COMP-5 occupies either two bytes or a multiple of four bytes. If you specify IBMCOMP and you use the SYNCHRONIZED clause on any items defined as USAGE COMP or COMP-5 in your program, do not specify ALIGN"1".
If you are calling any Micro Focus COBOL systems routines directly, use IBMCOMP with great care. It might cause the parameters you specify to these routines to be incorrectly aligned and sized, causing the routines to give incorrect results. This includes parameters for the CBL_ library routines, calls to Adis anddirect calls to the Callable File Handler.
Specifies the format to use when creating indexed files.
>>-.---.--IDXFORMAT--"integer"------------->< .-/-+
integer |
An integer representing the type to use. |
Default: | IDXFORMAT"0" |
Phase: | Syntax check |
$SET: | Any |
Set to IDXFORMAT"integer" immediately by FILETYPE"integer".
The possible values of integer are:
0 | System specific default. This is the same as specifying 1. |
1 | C-ISAM format. |
2 | Micro Focus Level II format. |
3 | Micro Focus indexed file format. |
4 | Optimized Micro Focus indexed file format, for fast duplicate file handling. |
5 | Reserved. |
6 | Reserved. |
7 | RLIO format indexed files. |
8 | Large indexed. |
9-10 | Reserved. |
11 | Mainframe print file format. |
12-13 | Reserved. |
14 | Heap file. |
15-255 | Reserved. |
Existing files in any of the given formats are processed correctly without the need for this directive. This directive controls the format used when creating new files.
Specifying 3 always causes the format used by this COBOL system to be created; if you specify 0, and you are using your program with a file handler from a different system, the default for that system is created.
Specifying 4 might make the files larger than their IDXFORMAT"3" equivalents.
Micro Focus Level II format files are compatible with Micro Focus Level II COBOL, Professional COBOL V1.2, and VS COBOL Workbench versions up to and including V1.3. (See your File Handling book for further information.)
You must not use the ANS85 directive to enable ANSI'85 behavior when using IDXFORMAT"2". However, you can use ANS85"SYNTAX" to enable ANSI'85 syntax.
Causes information regarding FILLER data items to be stored in the .idy file.
>>-.---.-.----.--INCLUDE-FILLER------------>< .-/-+ .-NO-+
None
Default: | NOINCLUDE-FILLER |
Phase: | Syntax check |
$SET: | Any |
INCLUDE-FILLER makes FILLER data items visible to various tools.
Including these data items increases the size of the .idy file.
Causes ACCEPT statements to read from a specified file.
>>-.---.-.-------INDD--"fname rsize rtype ctype"-.-->< .-/-+ .-------INDD--"fname rsize rtype"-------| .-------INDD--"fname rsize"-------------| .-------INDD--"fname"-------------------| ..----.-INDD----------------------------+ .-NO-+
fname |
Name of file to be read for the specified ACCEPT statements. The default is SYSIN. |
rsize |
Size of the data records in the file. The default is 80. |
rtype |
Either L for line sequential or r for record sequential. The default is L. |
ctype |
Either A for ASCII or E for EBCDIC. The default is A.
E only has effect when the CHARSET"EBCDIC" directive is used. |
Default: | NOINDD |
Phase: | Syntax check |
$SET: | Initial |
When INDD is specified, all Format 1 ACCEPT statements which either have no FROM option or specify FROM SYSIN (or the mnemonic-name associated with SYSIN) are transformed into READ statements, reading from a file with the specified external filename.
The filename can be mapped onto physical filenames in the same way as other files with external filenames; that is, by using environment variables or, if it is available on your system, the External File Mapper.
ACCEPT statement
OUTDD Compiler directive
Specifies the return-code value returned by the Compiler when it produces only informational messages.
>>-.---.--INFORETURN--"integer"------------>< .-/-+
integer |
Must be a value in the range 0 through 4. |
Default: | INFORETURN"0" |
Phase: | Syntax check |
$SET: | Any |
When the Compiler terminates it returns a value that can be tested by an operating system command to determine the success or otherwise of the compilation. The values for termination are described in the section Compiler Error Messages in the chapter Using the Compiler. This directive enables you to set the value to be returned if the Compiler only outputs informational messages.
Specifies modules to be called immediately before the first statement of the program is executed.
>>-.---.--.-----INITCALL--"module"-.------------.-.-->< .-/-+ | .-"priority"-+ | .-NO--INITCALL--------------------------+
module |
The module to be called. |
priority |
The priority to assign to the execution of the module. |
Default: | NOINITCALL |
Phase: | Syntax check |
$SET: | Initial |
The possible values of priority are:
H | High priority (the default if no priority is specified) |
L | Low priority |
Specifying INITCALL causes the Compiler to insert a call to the named module. At run time, the module specified is called before any procedural code is executed. You cannot pass parameters to the called module.
To call several modules using this feature, you must use the INITCALL directive repeatedly. NOINITCALL clears the list of modules to be called.
Calls specified with a high priority are placed before all calls with a low priority, as well as other calls made by the Compiler. Low priority calls are placed after other calls made by the Compiler. Calls with the same priority are executed in the order they are specified.
Selects the starting date for integer format dates used with date intrinsic functions.
>>-.---.------INTDATE---"type"----->< .-/-+
type | The type of starting date. |
Default: | ANSI |
Phase: | Syntax check |
$SET: | Any |
This directive selects the starting date for integer format dates used with date intrinsic functions (that is, DATE-OF-INTEGER, DAY-OF-INTEGER, INTEGER-OF-DATE, INTEGER-OF-DAY).
type can be:
ANSI | Instructs the Compiler to use the ANSI COBOL Standard starting date (where Day 1 = Jan 1, 1601). |
LILIAN | Instructs the Compiler to use the Lilian starting date (where Day 1 = Oct 15, 1582). |
For more details on the date intrinsic functions, see your Language Reference.
When intermediate code is being created by the Compiler, this directive controls the level of portability of the code created to different versions of Micro Focus COBOL systems in other environments.
>>-.---.-.-----INTLEVEL--"integer"-.------->< .-/-+ .-NO--INTLEVEL------------+
integer |
The level of portability. Can be 2, 4 or 5. |
Default: | INTLEVEL"2" |
Phase: | Syntax check |
$SET: | No |
Set to INTLEVEL"5" immediately by P64.
Full details of intermediate code portability are included with the relevant COBOL systems.
NOINTLEVEL causes intermediate code to be created that is suitable for execution only in this environment.
INTLEVEL"integer" creates intermediate code that can be executed by some versions of Micro Focus COBOL products in other environments. For portability between environments, the value of integer used for compilation must be supported by the Micro Focus COBOL system on each environment on which you want to execute the intermediate code.
INTLEVEL"integer" can limit the syntax that can be used in your program.
Use INTLEVEL"4" or above if you are compiling a program that is using syntax defined in the proposed ISO2000 standard. INTLEVEL"4" is set by default if you set DIALECT"ISO2000". If you do set these directives then, as the OO syntax proposed in the ISO2000 standard is different to that used in Server Express, OO programs created using Server Express will fail.
DIALECT Compiler directive
ISO2000 Compiler directive
Selects between a straight group move and conversion of elementary record descriptions (ANSI behavior) when processing READ ... INTO and WRITE ... FROM statements.
>>-.---.-.----.--IOCONV-------------------->< .-/-+ .-NO-+
None
Default: | IOCONV |
Phase: | Syntax check |
$SET: | Any |
NOIOCONV causes a straight group move for READ ... INTO and WRITE ... FROM operations. This is for backward compatibility.
IOCONV causes conversion of elementary record descriptions when required. This is normal ANSI behavior, and the default.
Specifies that words reserved in the proposed ISO2000 COBOL Standard are to be treated as reserved words, and changes the behavior of certain features to be compatible with that Standard.
>>-.---.-.----.---ISO2000-------------->< .-/-+ .-NO-+
None.
Default: | NOISO2000 |
Phase: | Syntax check |
$SET: | Initial |
For full compatibility with the proposed ISO2000 standard, you should also set the DIALECT"ISO2000" directive. If you do set these directives then, as the OO syntax proposed in the ISO2000 standard is different to used in Server Express, OO programs created using Server Express will fail.
DIALECT Compiler directive
INTLEVEL Compiler directive
Specifies that the File Handler should sort index file keys according to the local collating sequence, rather than using the ASCII collating sequence.
>>-.---.-.----.---IXNLSKEY-------------->< .-/-+ .-NO-+
None.
Default: | NOIXNLSKEY |
Phase: | Syntax check |
$SET: | Any |
If you move the index file to a system with a different locale, the index keys will no longer to be found.
Enables true numeric sorting on index keys.
>>-.---.-.----.---IXNUMKEY-------------->< .-/-+ .-NO-+
None.
Default: | NOIXNUMKEY |
Phase: | Syntax check |
$SET: | Any |
Index keys are normally treated as alphanumeric even if they contain numeric data. Therefore, the results of READ NEXT operations might be unexpected. This directive should be used when true numeric order is required. In general it only has an effect for keys defined as signed numeric, but some kinds of unsigned data (for instance COMP-5) might also be affected.
For example, say you have a key defined as pic s9(5), and you have four records for which the key values were 1, -2, 3, -4, stored as:
00001+ 00002- 00003+ 00004-
If these keys are treated as alphanumeric, they will be retrieved in the above order. However if they are treated as numeric (which is the case when IXNUMKEY is specified), they will be stored (and therefore retrieved when using READ NEXT) in numeric order:
00004- 00002- 00001+ 00003+
Enables the use of Micro Focus Japanese Language Extension (PIC N, Japanese data-names and Japanese procedure-names).
>>-.---.-.-------JAPANESE--"integer"-.----->< .-/-+ ..----.-JAPANESE------------+ .-NO-+
integer |
Must be 1 or 2. The level of support required. |
Default: | NOJAPANESE |
Phase: | Syntax check |
$SET: | Initial |
The possible values of integer are:
1 | Compatibility with previous versions of Nihongo Micro Focus products |
2 | Enhanced PIC N support. This setting enables the DBSPACE directive. |
Specifying JAPANESE with no parameter is the same as specifying JAPANESE"2".
This directive is provided for compatibility purposes only. It has been replaced by the NCHAR directive. JAPANESE and NCHAR are synonymous. The JAPANESE and DBCS directives are mutually exclusive.
DBCS Compiler directive
DBSPACE Compiler directive
NCHAR Compiler directive
Specifies whether the Compiler should produce intermediate code for an unsuccessful compilation; that is a compilation that produces serious or unrecoverable errors.
>>-.---.-.----.--KEEP-INT------------------>< .-/-+ .-NO-+
None
Default: | KEEP-INT |
Phase: | Syntax check |
$SET: | Any |
The Compiler also accepts the directive-name without a hyphen; that is KEEPINT.
In the case of segmented programs, should any segment have an unsuccessful compilation with NOKEEP-INT selected then intermediate code is not produced for any of the segments.
Specifies whether the number of keys should be checked when a file is opened.
>>---.---.--.----.-----KEYCHECK---------->< .-/-+ .-NO-+
Default: | KEYCHECK |
Phase: | Syntax check |
$SET: | Any |
By specifying NOKEYCHECK the file handler will not check the number of keys specified in the SELECT statement against the number of keys held in the files information area.
Specifies the type of key compression to be done on indexed files.
>>-.---.-.-----KEYCOMPRESS--"integer"-.---->< .-/-+ .-NO--KEYCOMPRESS------------+
integer |
Must be between 0 and 7. |
Default: | NOKEYCOMPRESS |
Phase: | Syntax check |
$SET: | Any |
integer can contain any combination of the following values:
1 | Suppress repetitions of duplicate keys. |
2 | Suppress leading characters that are the same as in the previous key. |
4 | Suppress trailing spaces. |
You can specify any combination of these numbers by adding these values together.
KEYCOMPRESS"0" is equivalent to NOKEYCOMPRESS.
You need specify key compression only when creating the file. Subsequently, key compression is detected when the file is opened.
To get key compression on an individual file, use $SET statements in your source so that this directive is in effect only for the part of the source containing the relevant KEY clause in the file's SELECT statement.
Allows -INC statements in your program.
>>-.---.-.----.--LIBRARIAN----------------->< .-/-+ .-NO-+
None
Default: | NOLIBRARIAN |
Phase: | Syntax check |
$SET: | Any |
The -INC statement specifies a file for inclusion in the source program. The string -INC must be written as a contiguous sequence of upper case characters starting in column 1, followed by one or more spaces, and then, on the same line, by the name of a file containing COBOL source. This file is included in the program at the point where the -INC statement appears.
Controls the detail of information displayed at the end of a source listing.
>>-.---.-.-------LINE-COUNT--"integer"-.---->< .-/-+ ..----.-LINE-COUNT------------+ .-NO-+
integer |
Must be 1 or 2. |
Default: | NOLINE-COUNT |
Phase: | Syntax check |
$SET: | Initial |
integer controls the detail displayed, as follows:
1 | The number of source lines checked, excluding blank lines and comments, is displayed at the end of the source listing. |
2 | As well as number of source lines checked, many additional details are displayed at the end of the source listing. These include the number of calls, the number of sections and the number of conditions in the program. |
Specifying LINE-COUNT with no integer is the same as specifying LINE-COUNT"2".
Specifies that each time a Linkage Section item is referenced a check is to be made that it exists.
>>-.---.-.----.--LINKCHECK----------------->< .-/-+ .-NO-+
None
Default: | NOLINKCHECK |
Phase: | Generate |
$SET: | Initial |
Set to LINKCHECK by CHECK
The PARAMCOUNTCHECK directive must also be specified if you intend to use the LINKCHECK directive.
If you set this directive, then for any reference to a Linkage Section item that does not exist a run-time error 203 (CALL parameter not supplied) is generated.
CHECK Compiler directive
PARAMCOUNTCHECK Compiler directive
Specifies the destination of the source listing file.
>>-.---.-.-------LIST-.-"destination"-.-.-->< .-/-+ | .-()------------+ | ..----.-LIST-------------------+ .-NO-+
destination |
A full file specification or a device-name. |
Default: | NOLIST |
Phase: | Syntax check |
$SET: | Any (for LIST and NOLIST) None (for LIST"filename" and LIST()) |
NOLIST sets NOFORM, NOREF, NOSETTING, NOSOURCEASM and NOXREF at end.
LIST sets FORM"60" immediately.
Set to NOLIST by RNIM at end.
If you specify an existing file, it is overwritten.
When NOLIST is specified, no source listing is produced. If you specify LIST with no destination, the source listing is sent to the screen. If you specify either destination or (), you cannot use this directive in a $SET statement.
destination can be the name of any suitable device. The device selected must not be under the control of a system spooler.
NOLIST and LIST with no parameter can be used in $SET statements in a program to list selected parts of the program. The destination of the listing cannot be changed in this way.
LIST() causes the source listing to be put in the file source-name.lst, where source-name is the root of the name of the program being compiled.
If you want to list the source to a file for every compilation you do, place the LIST() directive in the cobol.dir file. This overrides the default NOLIST.
Alternatively, if you already have a LIST directive in your cobol.dir, making every listing go to the screen, you can override it by using LIST() on the command line.
Specifies a path on which the list file is to be written. The name of the list file is source-name.lst.
>>-.---.-.----.--LISTPATH--"list-path"----->< .-/-+ .-NO-+
list-path |
Path to which the list file is written, or an environment variable specifying the path to which the list file is written. |
Default: | NOLISTPATH |
Phase: | Syntax check |
$SET: | Initial |
Sets the width of the listing.
>>-.---.--.-LISTWIDTH-.-"width"------------>< .-/-+ .-LW--------+
width |
Width in characters. It must be between 72 and 132. |
Default: | LISTWIDTH"80" |
Phase: | Syntax check |
$SET: | Any |
LISTWIDTH"132" causes additional information to be displayed for each line listed. This includes the first eight characters of the current copyfile-name (spaces for the main file) together with the number of the line relative to the start of that file.
Makes the Compiler declare the literals in CALL literal statements as public symbols, so they are resolved at link time rather than run time. (Calls generated in this way are referred to as litlinked.)
>>-.---.-.-----LITLINK-.-----------.-.----->< .-/-+ | .-"integer"-+ | .-NO--LITLINK---------------+
integer |
Must be 1 or 2. |
Default: | NOLITLINK |
Phase: | Generate |
$SET: | Initial |
This directive only affects object code files.
With LITLINK"2", if the name in a CALL literal statement starts with a single underscore - "_name" - a litlinked call to entry-name _name is generated. If it starts with a double underscore - "__name", a litlinked call to entry-name name is generated. (That is the entry-names are declared as public symbols.)
With LITLINK or LITLINK"1", all CALL literal statements generate litlinked calls, regardless of whether underscores are included at the start of the literal.
No CALL literal statements generate litlinked calls, regardless of the inclusion of underscores at the start of the literal.
LITLINK"2" is only intended to provide backward compatibility with code written for the 16-bit COBOL system. You should use call-convention 8 for new programs.
Specifies the number of bytes to pass if the SIZE clause is omitted when passing numeric literals BY VALUE.
>>-.---.--LITVAL-SIZE--"integer"----------->< .-/-+
integer |
A number up to 4. The number of bytes to pass. |
Default: | LITVAL-SIZE"4" |
Phase: | Syntax check |
$SET: | Any |
Indicates that any linkage records specified in a USING statement are 01 or level-77 items, aligned according to the ALIGN directive.
>>-.---.-.----.--LNKALIGN------------------>< .-/-+ .-NO-+
None
Default: | NOLNKALIGN |
Phase: | Generate |
$SET: | No |
Using LNKALIGN can reduce the time needed to access a linkage item at run time. However, take care when using it. You must use the correct ALIGN directive setting when compiling your program. No checks are made to ensure that the items are aligned.
The results of using this directive are machine-dependent, and you should not use it if you are in any doubt as to its effect. Unpredictable results might occur if you pass linkage items that are not aligned.
This directive is reserved for internal use by this COBOL system. Because it might appear in the list of settings, it is included for completeness. It is not intended for your use, and its setting should not be changed.
>>-.---.--LOCALCOUNT--"integer"------------>< .-/-+
integer |
Must be in the range 0 to 65536 |
Default: | LOCALCOUNT"0" |
Phase: | Syntax check |
$SET: | Initial |
Specifies the type of record locking.
>>-.---.--LOCKTYPE--"integer"-------------->< .-/-+
integer |
The type of locking. |
Default: | LOCKTYPE"0" |
Phase: | Syntax check |
$SET: | Initial |
The possible values of integer are:
0 | Programs can read locked records, but not access them in other ways. This is the standard method with this COBOL system. |
1 | Programs cannot access locked records at all. This is as in languages other than COBOL. |
2 | Creates a new file with the same basename as the file being opened but with a .lck extension. Any record locks are recorded in this file. This enables the file handler to read and write to files up to 4 Gigabytes in size regardless of whether the file is shared or locked. You cannot set this value for striped files. |
This directive only has an effect if the CALLFH directive is used.
Makes one reserved word synonymous with another.
>>--MAKESYN-"rsv-word-1" = "rsv-word-2"---><
rsv-word-1 |
A reserved word. |
rsv-word-2 |
The reserved word whose meaning is to be changed. |
Default: | No reserved word synonyms are created. |
Phase: | Syntax check |
$SET: | Initial |
The equals sign (=) must be surrounded by spaces. You can also leave a space between the directive and its option to improve readability. If you are specifying this directive to the -C option of the Cob command line, you need to ensure that all characters are escaped correctly for the UNIX shell. See the section Option Configuration in the chapter COBOL System Interface (Cob) for details. For example, to specify MAKESYN on the command line:
cob -C 'makesyn "low" == "lowlight"' a.cbl
This directive does not appear in the list created with the SETTING directive.
Makes the Compiler alter program-names and entry-points to make them compatible with OS/VS COBOL, DOS/VS COBOL, VS COBOL II and COBOL/370.
>>-.---.-.----.--MAPNAME------------------->< .-/-+ .-NO-+
None
Default: | NOMAPNAME |
Phase: | Syntax check |
$SET: | Initial |
Specifying MAPNAME affects program-names and entry-points defined in the compilation and those referenced by the program as follows:
When a name is found to be incompatible a warning message is given and a modified name is used in the object program. The rules enforced and the modifications made are:
0 becomes J 1 - 9 become A - I
Causes the Compiler to abort when the specified number of errors have been produced.
>>-.---.-.-----MAX-ERROR--"err-cnt-.-------.-"-.->< .-/-+ | .-svrty-+ | .-NO--MAX-ERROR-----------------------+
err-cnt |
The maximum number of errors | ||||||||||
svrty |
The minimum level of severity to be
counted. Only messages of the severity specified and greater are
counted. One of:
If omitted, assumes F. |
Default: | NOMAX-ERROR |
Phase: | Syntax check |
$SET: | Any |
The Compiler also accepts the directive-name without a hyphen; that is MAXERROR.
If the maximum number of messages of at least the specified severity is reached then the compilation stops. The messages are only counted if produced and after any modification to the severity of the message.
Specifying the directive:
MAX-ERROR"100 E"
causes the compilation to terminate when 101 messages of severity E or S have been produced.
CHANGE-MESSAGE Compiler directive
FLAG Compiler directive
FLAGAS Compiler directive
FLAGSTD Compiler directive
HIDE-MESSAGE Compiler directive
WARNING Compiler directive
Facilitates forward compatibility with Micro Focus COBOL systems by selectively enabling Micro Focus-specific reserved words and changing the behavior of certain features to be compatible with particular versions.
>>-.---.-.-------.-MF------.-"integer"-.--->< .-/-+ | .-MFLEVEL-+ | ..----.-.-MF------.-----------+ .-NO-+ .-MFLEVEL-+
integer |
The level of Micro Focus COBOL to be compatible with. |
Default: | MF"10" |
Phase: | Syntax check |
$SET: | Initial |
MF"7" sets DBCS"2" immediately.
If integer > 7, sets DBCS"3" and DBSPACE
immediately.
If NOEARLY-RELEASE and MF are set, MF defaults to MF"10".
If EARLY-RELEASE and MF are set, MF defaults to MF"11".
The possible values of integer are:
1 | Professional COBOL V1.0, V1.1, and V1.2 Level II COBOL V2.5 and V2.6 Level II COBOL/ET V1.1 |
2 | VS COBOL Workbench V1.2 VS COBOL V1.2 |
3 | VS COBOL Workbench V1.3 VS COBOL Workbench V2.0 Professional COBOL V2.0 VS COBOL V1.5 |
4 | COBOL/2 V1.1 Professional COBOL/2 COBOL/2 Workbench V2.2 Microsoft COBOL V3.0 |
5 | COBOL/2 V1.2 COBOL/2 Workbench V2.3 |
6 | COBOL/2 V2.4 COBOL/2 Workbench V2.4 Microsoft COBOL V4.0 |
7 | COBOL/2 V2.5 COBOL/2 Workbench V2.5 Microsoft COBOL V4.5 |
8 | COBOL V3.0 COBOL Workbench V3.0 Microsoft COBOL V5.0 |
9 | COBOL V3.1 COBOL Workbench V3.1 |
10 | COBOL V3.1 with Early Release Syntax enabled COBOL Workbench V3.1 with Early Release Syntax enabled COBOL V3.2 and V3.3 COBOL Workbench V3.2 and V3.3 Object COBOL V3.2 and V3.3 COBOL V4.0 (UNIX) |
11 | COBOL V3 V4.0 (UNIX) with Early Release Syntax enabled |
Behavior of the BLANK LINE phrase in previous versions of this COBOL system can be implemented using the OLDBLANKLINE directive. Behavior of the NEXT SENTENCE phrase in previous versions of this COBOL system can be implemented using the OLDNEXTSENTENCE directive.
MF"11" contains all reserved words in MF"10" together with those that are part of the Early Release syntax. Specifying MF without a parameter sets MF"11" if the EARLY-RELEASE directive has already been set. Otherwise, it sets MF"10". It is not possible to set MF"11" unless EARLY-RELEASE has already been set.
EARLY-RELEASE Compiler directive
OLDBLANKLINE Compiler directive
OLDNEXTSENTENCE Compiler directive
Treats lines with an asterisk (*) in column 1 the same as comment lines but does not show them in the source listing.
>>-.---.-.----.--MFCOMMENT----------------->< .-/-+ .-NO-+
None
Default: | MFCOMMENT |
Phase: | Syntax check |
$SET: | Any |
Set to NOMFCOMMENT at end by SOURCEFORMAT"FREE".
With MFCOMMENT, lines with an asterisk in column 1 are ignored by the Compiler and do not appear in the source listing (though they do appear in Animator). With NOMFCOMMENT, the asterisk forms part of the sequence number and has no special significance.
Causes the compiler to check source and target lengths for alphanumeric MOVE operations.
>>-.---.--.----.-----MOVE-LEN-CHECK------>< .-/-+ .-NO-+
Default: | NOMOVE-LEN-CHECK |
Phase: | Syntax check |
$SET: | Any |
This directive causes the compiler to check source and target lengths for alphanumeric MOVE operations and issues a warning message (166) if they are different.
Any warning messages produced by enabling this directive are only visible if WARNINGS"2" or WARNINGS"3" is selected.
Facilitates forward compatibility with Microsoft COBOL systems by selectively enabling Microsoft-specific reserved words and changing the behavior of certain features to be compatible with particular versions.
>>-.---.-.-------MS--"version"-.----------->< .-/-+ ..----.-MS------------+ .-NO-+
version |
Must be 1 or 2. |
Default: | NOMS |
Phase: | Syntax check |
$SET: | Initial |
MS sets DEFAULTBYTE"0" and ACCEPTREFRESH immediately.
The possible values of version are:
1 | Microsoft COBOL Version 1. |
2 | Microsoft COBOL Version 2. |
Specifying MS with no parameters is the same as specifying MS"2". MS"1" is identical to IBM-MS and PC1.
This directive is for compatibility with Microsoft COBOL before version 3.0. For compatibility with V3.0 and later, use:
NOMS MF"integer"
The value of integer to use is shown in the description of the MF directive.
Specifies the default collating sequence for comparisons.
>>-.---.--NATIVE--"coll-seq"--------------->< .-/-+
coll-seq |
Either "ASCII" or "EBCDIC". |
Default: | NATIVE"ASCII" |
Phase: | Syntax check |
$SET: | Initial |
Set to NATIVE"ASCII" immediately by CHARSET"ASCII".
Set to NATIVE"EBCDIC" at end by CHARSET"EBCDIC".
For more details, see the rules for PROGRAM COLLATING SEQUENCE in your Language Reference.
The keys in an indexed file are always ordered by the ASCII collating sequence.
Enables the use of Micro Focus Double-byte Language Extension (PIC N, Japanese data-names and Japanese procedure-names).
>>-.---.-.-------NCHAR--"integer"-.-------->< .-/-+ ..----.-NCHAR------------+ .-NO-+
integer |
Must be 1 or 2. The level of support required. |
Default: | NONCHAR |
Phase: | Syntax check |
$SET: | Initial |
The possible values of integer are:
1 | Compatibility with previous versions of Nihongo Micro Focus products |
2 | Enhanced PIC N support. This setting enables the DBSPACE directive. |
Specifying NCHAR with no parameter is the same as specifying NCHAR"2".
This directive is synonymous with, and should be used in preference to, the JAPANESE directive.
The NCHAR and DBCS directives are mutually exclusive.
When a PIC X is moved to a PIC N, with NCHAR"2", a space (x"20") is expanded to one double-byte space, and so x"2020" is expanded to two double-byte spaces. With NCHAR"1", x"2020" is expanded to one double-byte space.
DBCS Compiler directive
DBSPACE Compiler directive
JAPANESE Compiler directive
This directive is reserved for internal use by this COBOL system. Because it might appear in the list of settings, it is included for completeness. It is not intended for your use, and its setting should not be changed.
Allows nested programs to appear in your program.
>>-.---.-.----.--NESTCALL------------------>< .-/-+ .-NO-+
None
Default: | NONESTCALL |
Phase: | Syntax check |
$SET: | Initial |
This directive is reserved for internal use by this COBOL system. Because it might appear in the list of settings, it is included for completeness. It is not intended for your use, and its setting should not be changed.
Allows Local-Storage Section in nested programs.
>>-.---.-.----.--NESTLOCALSTORAGE---------->< .-/-+ .-NO-+
None
Default: | NONESTLOCALSTORAGE |
Phase: | Syntax check |
$SET: | Initial |
Enables the National Language Support facility.
>>-.---.-.----.--NLS----------------------->< .-/-+ .-NO-+
None
Default: | NONLS |
Phase: | Syntax check |
$SET: | No |
NLS enables your program to adapt itself automatically at run time to the character set, currency symbol and editing symbols appropriate to your user's country.
The chapter National Language Support in your Programmer's Guide to Writing Programs.
Makes the evaluation of OCCURS DEPENDING ON items more compatible with the OS/VS COBOL compiler.
>>-.---.-.----.--ODOOSVS------------------->< .-/-+ .-NO-+
None
Default: | NOODOOSVS |
Phase: | Syntax check |
$SET: | Initial |
ODOOSVS sets ODOSLIDE at end.
When ODOOSVS is specified, the length of variable-length groups and the address of items following variable-length tables is evaluated at the time when the OCCURS DEPENDING ON item is modified, rather than at the time when the variable-length group or sliding data item is referenced.
Moves data items that follow a variable-length table in the same record as the table's length changes.
>>-.---.-.----.--ODOSLIDE------------------>< .-/-+ .-NO-+
None
Default: | NOODOSLIDE |
Phase: | Syntax check |
$SET: | Initial |
Set to ODOSLIDE at end by ODOOSVS.
This affects data items that appear after a variable-length table in the same record; that is, after an item with an OCCURS DEPENDING clause, but not subordinate to it.
With ODOSLIDE, these items always immediately follow the table, whatever its current size; this means their addresses change as the table's size changes. With NOODOSLIDE, these items have fixed addresses, and begin after the end of the space allocated for the table at its maximum length.
Changes the behavior of the BLANK LINE clause in the Screen Section.
>>-.---.-.----.--OLDBLANKLINE-------------->< .-/-+ .-NO-+
None
Default: | NOOLDBLANKLINE |
Phase: | Syntax check |
$SET: | Any |
When OLDBLANKLINE is specified, the BLANK LINE clause behaves exactly the same as ERASE EOL; that is all characters to the right of the cursor are deleted.
With NOOLDBLANKLINE specified, the BLANK LINE clause causes the whole line to be deleted.
Makes COPY statements follow the ANSI'68 Standard.
>>-.---.-.----.--OLDCOPY------------------->< .-/-+ .-NO-+
None
Default: | NOOLDCOPY |
Phase: | Syntax check |
$SET: | Any |
This directive is reserved for internal use by this COBOL system. Because it might appear in the list of settings, it is included here for completeness. It is not intended for your use, and its setting should not be changed.
>>-.---.-.----.--OLDFILEIO----------------->< .-/-+ .-NO-+
None
Default: | NOOLDFILEIO |
Phase: | Syntax check |
$SET: | Initial |
Causes indexes to be compiled as subscripts.
>>-.---.-.----.--OLDINDEX------------------>< .-/-+ .-NO-+
None
Default: | NOOLDINDEX |
Phase: | Syntax check |
$SET: | Initial |
Set to NOOLDINDEX immediately by NORM.
Set to OLDINDEX immediately by RM and RM"ANSI".
This directive is for compatibility with earlier products.
Changes the behavior of the NEXT SENTENCE statement.
>>-.---.-.----.--OLDNEXTSENTENCE----------->< .-/-+ .-NO-+
None
Default: | NOOLDNEXTSENTENCE |
Phase: | Syntax check |
$SET: | Any |
When OLDNEXTSENTENCE is specified, the NEXT SENTENCE statement behaves like a CONTINUE statement.
For more details on CONTINUE and NEXT SENTENCE, see your Language Reference.
CONTINUE statement
Changes the behavior of the READ ... INTO statement.
>>-.---.-.----.--OLDREADINTO--------------->< .-/-+ .-NO-+
None
Default: | NOOLDREADINTO |
Phase: | Syntax check |
$SET: | Any |
When OLDREADINTO is specified, the implicit move from the file's record area to the data item specified in the INTO phrase is executed even when the READ is not successful. If NOOLDREADINTO is specified, the MOVE only happens if the READ is successful.
Allows PIC X and PIC N fields to be specified in the same STRING, UNSTRING, or INSPECT statement.
>>-.---.-.----.--OLDSTRMIX--------------->< .-/-+ .-NO-+
None
Default: | NOOLDSTRMIX |
Phase: | Syntax check |
$SET: | Any |
This directive is provided for forward compatibility only.
We recommend that you do not use it as it can lead to unexpected results and the corruption of double-byte data.
Enables you to change language options when compiling Object COBOL classes.
+---------------. | | >>----.---.---OOCTRL---.-switch-option-.------>< .-/-+
switch | Turns option on or off. |
option | Determines how syntax in OO programs is to be treated. |
Default: | OOCTRL"-W" (All dialects) |
Phase: | Syntax check |
$SET: | Any |
switch can be:
+ | Turns option on. |
- | Turns option off. |
option can be:
G | Specifies whether to make class data global for instances. The use of this option is not recommended. It is provided for compatibility with earlier releases. |
P | Specifies whether to make parameter type information available to the run-time system. This is needed for messages sent to OLE and SOM. |
Q | Specifies whether to disable the use of:
|
W | Specifies whether to use:
When Working-Storage is used to mean Local-Storage or Object-Storage, a Local-Storage Section or Object-Storage Section, respectively, must not be specified. This provides compatibility with the developing ISO2000 COBOL standard. |
Set +W to use the Working-Storage in the same way as that proposed by the developing ISO COBOL standard.
Specifies the level of optimization of the code produced in the object code file.
>>----.---.---OPT---integer------>< .-/-+
integer | The level of optimization. |
Default: | OPT"2" |
Phase: | Generate |
$SET: | Any |
integercan be:
1 | Minimal optimization |
2 | Default optimization |
3 | Additional optimization - particularly of STRING, UNSTRING and INSPECT. This option increases the time taken to generate a program in comparison to the default optimization. |
4 | Optimized as for option 3, but in addition on Intel platforms the code is scheduled. This option increases the time taken to generate a program in comparison to option 3. |
Makes the Compiler treat all files opened for I-O or EXTEND as optional.
>>-.---.-.----.--OPTIONAL-FILE------------->< .-/-+ .-NO-+
None
Default: | OPTIONAL-FILE |
Phase: | Syntax check |
$SET: | Initial |
Set to OPTIONAL-FILE immediately by NORM.
Set to NOOPTIONAL-FILE immediately by RM or RM"ANSI".
Under ANSI'85 Standard COBOL, a file is treated as optional only if it has the OPTIONAL phrase in its SELECT statement. For compatibility with the ANSI'85 Standard you must specify the NOOPTIONAL-FILE directive.
Specifies that words reserved in IBM OS/VS COBOL are to be treated as reserved words.
>>-.---.-.----.--OSVS---------------------->< .-/-+ .-NO-+
None
Default: | NOOSVS |
Phase: | Syntax check |
$SET: | Initial |
OSVS sets NODOSVS immediately.
Causes DISPLAY and EXHIBIT statements to write to a specified output file.
>>-.---.-.--------OUTDD--"fname rsize rtype ctype"-.'" .-/-+ .--------OUTDD--"fname rsize rtype"-------| .--------OUTDD--"fname rsize"-------------| .--------OUTDD--"fname"-------------------| .-.----.-OUTDD----------------------------+ .-NO-+
fname |
Name of file to be written for the specified DISPLAY statements and EXHIBIT statements. The default is SYSOUT. |
rsize |
Size of the data records in the file. The default is 132. |
rtype |
Either L for line sequential or R for record sequential. The default is L. |
ctype |
Either A for ASCII or E for EBCDIC. The
default is A.
E only has effect when the CHARSET(EBCDIC) directive is used. |
Default: | NOOUTDD |
Phase: | Syntax check |
$SET: | Initial |
When OUTDD is specified, all format 1 DISPLAY statements which either have no UPON option or specify UPON SYSOUT, and all EXHIBIT statements are transformed into WRITE statements, writing to a file with the specified external filename.
The filename can be mapped onto physical filenames in the same way as other files with external filenames; that is, by using environment variables or the External File Mapper, MFExtmap.
DISPLAY statement
EXHIBIT statement
INDD Compiler directive
Replaces a reserved word by a new one.
+---------------------------. v | >>-OVERRIDE--"rsv-word" = "user-word"-----><
rsv-word |
Existing reserved word. |
user-word |
Any COBOL word not the same as an existing reserved word. |
Default: | No change of reserved words takes place. |
Phase: | Syntax check |
$SET: | Initial |
This directive equates an existing reserved word to the specified user-defined word, so that, in the program, user-word is treated as a reserved word, and rsv-word can be used as a user-defined word.
The equals sign (=) must be surrounded by spaces. You can also leave a space between the directive and its option to improve readability. If you are specifying this directive to the -C option of the Cob command line, you need to ensure that all characters are escaped correctly for the UNIX shell. See the section Option Configuration in the chapter COBOL System Interface (Cob) for details. For example, to specify OVERRIDE on the command line:
cob -C 'override "global" == "glob"' a.cbl
This directive does not appear in the list created with the SETTING directive.
Compiles a program for execution in a 64-bit run-time environment.
>>-.---.-.----.--P64------------------>< .-/-+ .-NO-+
None
Default: | NOP64 on 32-bit systems P64 if compiling with the cob64 command, or if working mode is set to 64. |
Phase: | Syntax check |
$SET: | Any |
P64 immediately sets:
RTNCODE-SIZE"8"
INTLEVEL"5"
FCD3
If you set the P64 directive, your program is compiled to run under a 64-bit development environment, and to manipulate 64-bit pointers.
You can use the P64 directive in combination with the AMODE(24/31) directive, in which case all user-defined pointers remain 32 bits in size, while system and/or hidden pointers are expanded to 64 bits.
AMODE Compiler directive
FCD Compiler directive
INTLEVEL Compiler directive
RTNCODE-SIZE Compiler directive
See the chapter Working
in 32-bit and 64-bit Modes for information on the 32-bit and
64-bit working modes.
Allows ++INCLUDE statements in your program.
>>-.---.-.----.--PANVALET------------------>< .-/-+ .-NO-+
None
Default: | NOPANVALET |
Phase: | Syntax check |
$SET: | Any |
The ++INCLUDE statement specifies a file for inclusion in the source program. The string ++INCLUDE must be written as a contiguous sequence of upper-case characters starting in Area A or Area B, followed by one or more spaces, and then, on the same line, by the name of a file containing COBOL source. This file is included in the program at the point where the ++INCLUDE statement appears.
If you specify PANVALET and LIBRARIAN together, a warning message is given advising that the compiled program might not be mainframe-compatible.
Enables the program to be called with fewer parameters than are specified in the relevant entry-point's USING clause.
>>-.---.-.----.--PARAMCOUNTCHECK----------->< .-/-+ .-NO-+
None
Default: | PARAMCOUNTCHECK |
Phase: | Generate |
$SET: | Initial |
Set to PARAMCOUNTCHECK by CHECK.
You must use this directive if any of the following apply:
Otherwise the program can be compiled with NOPARAMCOUNTCHECK for efficiency. A program to be called from a language other than COBOL must be compiled with NOPARAMCOUNTCHECK.
CHECK Compiler directive
LINKCHECK Compiler directive
STICKY-LINKAGE Compiler directive
Specifies that words reserved in IBM COBOL V1.00 are to be regarded as reserved words, and changes the behavior of certain features to be compatible with that COBOL system.
>>-.---.-.----.--PC1----------------------->< .-/-+ .-NO-+
None
Default: | NOPC1 |
Phase: | Syntax check |
$SET: | Initial |
PC1 sets DEFAULTBYTE"0" and ACCEPTREFRESH immediately.
This directive is synonymous with the IBM-MS and MS"1" directives.
Specifies the behavior of return jumps from nested PERFORM statements.
>>-.---.--PERFORM-TYPE--"dialect"---------->< .-/-+
dialect |
MF, OSVS, or RM. |
Default: | PERFORM-TYPE"MF" |
Phase: | Syntax check |
$SET: | Initial |
PERFORM-TYPE"OSVS" sets TRICKLE at end.
The possible values of dialect are:
MF | Only the exit point of the innermost PERFORM currently being executed is recognized and its return jump taken. |
OSVS | The exit point of any PERFORM statement
currently being executed is recognized if reached; the return jump taken
is the first reached. PERFORM statements with the same exit point can be
nested to a depth of two (one inner and one outer). If they are nested
deeper, they do not return correctly. The end of a section is regarded
as the same point as the end of its last paragraph.
PERFORM-TYPE"OSVS" provides compatibility with the mainframe behavior of OS/VS COBOL, DOS/VS COBOL, VS COBOL II and COBOL/370. |
RM | The exit point of any PERFORM statement currently being executed is recognized if reached; the return jump taken is the first reached. PERFORM statements with the same exit point cannot be nested; if they are they do not return correctly. The end of a section is regarded as a separate point from the end of its last paragraph. |
STICKY-PERFORM Compiler directive
Specifies that the Compiler should not generate code for PERFORM statements that reference empty paragraphs.
>>-.---.-.----.-PERFORMOPT--------------------->< .-/-+ .-NO-+
None
Default: | PERFORMOPT |
Phase: | Generate |
$SET: | Initial |
For greatest efficiency the Compiler normally does not generate code for a PERFORM statement that references an empty paragraph. If you require the code to be left in, for example for timing purposes, specify NOPERFORMOPT.
Causes the list file produced during a compilation to show both the original and modified source created by the preprocessor as well as to show all data passed to the Compiler by a preprocessor.
>>-.---.-.----.--PREPLIST------------------>< .-/-+ .-NO-+
None
Default: | NOPREPLIST |
Phase: | Syntax check |
$SET: | No |
This directive is provided as a debugging aid to preprocessor writers.
This directive only affects what the listing file, if produced, contains. It does not determine if a listing file is produced, or the name of the file.
Makes the Compiler take the source program from a preprocessor instead of a source file.
>>-.---..----.-PREPROCESS-.-"name".------..------.-.-->< .-/-+| .-P----------+ .-dirs-+.-ENDP-+ | .-NO-.-PREPROCESS-.------------------------+ .-P----------+
name |
The preprocessor to use. |
dirs |
Directives to be passed directly to the preprocessor. |
Default: | NOPREPROCESS |
Phase: | Syntax check |
$SET: | On very first source line only No (with NOPREPROCESS) |
This directive informs the Compiler that an integrated preprocessor is to be used.
For more information on using this directive, see the chapter Integrated Preprocessor Interface in your Programmer's Guide to Writing Programs.
A $SET statement is processed by both the compiler and the preprocessor. Furthermore, if the PREPROCESS directive is set in a $SET statement, the directive only takes effect after the entire $SET statement has been processed. If the $SET statement contains other directives there might be incompatibilities when the preprocessor parses the source a second time. In particular, the SOURCEFORMAT directive might cause the compiler to interpret the source as fixed format while the preprocessor might view it as free format, or vice-versa. If you specify the PREPROCESS Compiler directive in a $SET statement, you should, therefore, ensure that the $SET statement only contains the PREPROCESS directive. If you want to set other directives, use separate $SET statements on following lines.
You are advised to use the ENDP COBOL directive to terminate the directives to pass to the preprocessor. Directives placed after ENDP pass to the COBOL Compiler. Therefore, without the ENDP directive, Compiler directives might continue to pass to the preprocessor rather than to the COBOL compiler.
If you are sending directives to the COBSQL preprocessor, use END-C to distinguish the directives to pass to COBSQL and the directives to pass to the precompiler. For example, in the command line below, directives placed before END-C pass to COBSQL while directives placed between END-C and ENDP pass via COBSQL to the precompiler:
preprocess(cobsql) csqltype=oracle end-c comp5=yes endp;
For more information on COBSQL, refer to the Database Access book.
Specifies the destination of the source listing file.
>>-.---.-.-------PRINT-.-"destination"-.-.-->< .-/-+ | .-()------------+ | ..----.-PRINT-------------------+ .-NO-+
destination |
A full file specification, or a device-name. |
Default: | NOPRINT |
Phase: | Syntax check |
$SET: | Any |
PRINT is synonymous with LIST. All rules that apply to LIST also apply to PRINT.
Specifies the extension to be added to the filename associated with the ASSIGN TO PRINTER clause.
>>-.---.--PRINT-EXT--"extension"----------->< .-/-+
extension |
The extension to be added. |
Default: | No extension is added |
Phase: | Syntax check |
$SET: | Any |
This directive is ignored unless ASSIGN-PRINTER() is specified with no filename.
ASSIGN-PRINTER Compiler directive
Includes code in your program to produce detailed performance statistics each time you run the program.
>>-.---.-.----.--PROFILE------------------->< .-/-+ .-NO-+
None
Default: | NOPROFILE |
Phase: | Syntax check |
$SET: | No |
Allows comments following the PROGRAM-ID in the Program-Id paragraph.
>>-.---.-.----.--PROGID-COMMENT------------>< .-/-+ .-NO-+
None
Default: | NOPROGID-COMMENT |
Phase: | Syntax check |
$SET: | Initial |
This directive is provided for compatibility with earlier versions of this COBOL system.
Extends the standard COBOL semantics so that the lengths of parameters can differ between the calling and the called program.
Normally, the result of ignoring the constraints would give undefined results, possibly including severe errors such as protection violations or memory access faults.
>>-.---.-.----.--PROTECT-LINKAGE----------->< .-/-+ .-NO-+
None
Default: | NOPROTECT-LINKAGE |
Phase: | Syntax check |
$SET: | Initial |
The ANSI COBOL standard states in the general rules for each parameter passed by the CALL statement that "The description of the data item in the called program must describe the same number of character positions as described by the description of the corresponding data item in the calling program." This restriction must be observed when using this COBOL system unless the program is compiled with the PROTECT-LINKAGE directive.
The restriction is lifted when the PROTECT-LINKAGE directive is set. The called program only uses mismatched parameters as sending items in a statement and does not use them as receiving items.
Any character positions in a parameter for which there is no correspondence in the called and calling programs is a mismatched character. The contents of any mismatched character is undefined for a parameter used as a sending item in a called program.
Using this directive affects the performance of your application.
Calling program:
... 03 x1 pic x. 03 x2 pic x(100). procedure division. ... call subprog using x1 ...
Subprogram:
$set protect-linkage working-storage section. 01 y1 pic x(1000). linkage section. 01 z1 pic x(1000). procedure division using z1. move z1 to y1 * This operation works, and transfers the contents of x1. * It also transfers any data following x1 in the calling * program, up to 1000 bytes or the end of allocated memory, * whichever occurs first. If less than 1000 bytes is * transferred, the remainder of y1 is space filled. move y1 to z1. * This operation is not protected and fails, either by * corrupting data beyond x1 in the calling program, or * trying to write beyond allocated memory, which might * result in a protection violation.
Enables relaxed or strict checking of CALL prototypes for COMP, BINARY, COMP-4, COMP-5 and COMP-X data items when used in the BY VALUE or RETURNING clauses of a CALL statement. It also inhibits or enables the implicit copying of parameter types from the prototype.
>>----.---.-----PROTOTYPE----"level"--------------------->< .-/-+
level |
STRICT, RELAXED or NORMAL |
Default: | PROTOTYPE"RELAXED" |
Phase: | Syntax check |
$SET: | Any |
The PROTOTYPE directive gives you control over how calls to CALL prototypes are handled. The options are:
RELAXED | Data-items and parameter attributes are loosely checked against the prototype |
NORMAL | Data-items are strictly checked against the protoype, while parameter attributes are loosely checked |
STRICT | Data-items and parameter attributes are strictly checked against the protoype |
PROTOTYPE"RELAXED" can be particularly useful when you compile programs written on 32-bit systems that use CALL prototypes written on 64-bit systems.
By default, BY VALUE binary data-items are loosely type-checked (that is PROTOTYPE"RELAXED" is set). For example, a CALL statement can provide a PIC X(2) COMP data-item in its USING list, and that item can correspond to a PIC X(n) COMP data-item in a CALL prototype, where n can be from 1 to 4 on a 32-bit system, and 1 to 8 on a 64-bit system. If the value passed was larger than that specified for the receiving data item, truncation occurs. If you want to avoid truncation due to this loose type-checking, set PROTOTYPE"NORMAL"or PROTOTYPE"STRICT" when compiling your program.
If you set PROTOYPE"NORMAL" or PROTOTYPE"RELAXED", the attributes for the parameters of a call are copied from the prototype. If you set PROTOYPE"STRICT", this does not happen. For example, suppose you have the program:
program-id. prog1 is external. entry call-conv "my_api" by value x1 by reference x2 end program prog1. program-id. prog2. call "my_api" by x1 x2
If you set PROTOYPE"NORMAL", the call to my_api
is converted by the Compiler to:
call call-conv "my_api" by value x1 by reference x2
If you set PROTOTYPE"STRICT", the call to my_api
is treated as if the parameters followed the normal rules. The call is
therefore is converted to:
call "my_api" by reference x1 by reference x2
and the Compiler issues appropriate error messages. Similarly, if the call convention does not match that specified in the prototype, or is not specified to the CALL statement, error messages are issued.
For an introduction to CALL prototypes, see the section CALL Prototypes in the chapter Calling Programs in your Programmer's Guide to Writing Programs.
For an example of using CALL prototypes, see the section CALL Prototypes in the chapter Examples in your Language Reference - Additional Topics.
For information on the syntax required for CALL prototypes, see your Language Reference.
Allows qualified data-names and procedure-names in your program.
>>-.---.-.----.--QUAL---------------------->< .-/-+ .-NO-+
None
Default: | QUAL |
Phase: | Syntax check |
$SET: | Any |
If you have no qualified data-names or procedure-names in your source code, you can specify NOQUAL. This improves compilation speed.
Allows qualified procedure-names in your program.
>>-.---.-.----.--QUALPROC------------------>< .-/-+ .-NO-+
None
Default: | QUALPROC |
Phase: | Syntax check |
$SET: | Any |
If you have no qualified procedure-names in your source code, you can specify NOQUALPROC. This improves compilation speed. If you have qualified data-names but no qualified procedure-names, you should specify QUAL and NOQUALPROC.
Makes the Compiler ask what it should do each time it is unable to find a copyfile.
>>-.---.-.----.--QUERY--------------------->< .-/-+ .-NO-+
None
Default: | NOQUERY |
Phase: | Syntax check |
$SET: | Any |
With QUERY, if the Compiler cannot find a copyfile it asks you whether to terminate the compilation, try the search again, produce an error message and continue, or try again with an alternative path specified by you.
With NOQUERY, the Compiler simply produces an error message and continues.
Makes the Compiler interpret the figurative constant QUOTE as the double-quote character (").
>>-.---.--QUOTE---------------------------->< .-/-+
None
Default: | QUOTE |
Phase: | Syntax check |
$SET: | Any |
The opposite of this directive is the directive APOST which causes the single-quote character to be used.
Prevents changeable information, such as page headers, date, time, Compiler release level, from being included in any listing file produced.
>>-.---.-.----.--RAWLIST------------------->< .-/-+ .-NO-+
None
Default: | NORAWLIST |
Phase: | Syntax check |
$SET: | Any |
Specifying this directive does not affect whether a listing is produced or the name of the listing file.
Enables you to find out the length of a record that has just been read from a variable-length sequential file.
>>-.---.-.----.--RDW----------------------->< .-/-+ .-NO-+
None
Default: | NORDW |
Phase: | Syntax check |
$SET: | Any |
If you specify the RDW directive, a four-byte record-length field is allocated immediately before the record area for the file. After a READ, the length (in binary) of the record just read is put in the first two bytes of this record area. The length returned includes the record-length field itself, so is four bytes longer than the actual record length.
You can access this field by defining the record area as a table, and using negative or zero subscripts.
The RDW directive is intended only for mainframe compatibility; for new programs you should use the RECORD IS VARYING DEPENDING ON phrase of the FD statement.
fd file-1. 01 rec-1 pic x(100). 01 rec-2. 03 rdw-table pic x(4) occurs 25. Working-storage section. 01 rdw-area. 03 rec-length pic 9(4) comp. 03 filler pic 9(4) comp. procedure division. ... read file-1 move rdw-table (0) to rdw-area ...
FD statement
Specifies the default format of files.
>>-.---.--RECMODE--"format"---------------->< .-/-+
format |
F, V, or OSVS. |
Default: | RECMODE"F" |
Phase: | Syntax check |
$SET: | Initial |
The possible values of format are:
F | Fixed length record format. |
V | Variable length record format. |
OSVS | Fixed or variable depending on a file's record
definitions. If all record definitions for the file have the same length
and are fixed length, the file is fixed-length record format. Otherwise
it is variable-length record format.
This setting is compatible with OS/VS COBOL and DOS/VS COBOL. When compiled with their CMPR2 directive, both VS COBOL II COBOL/370 are also compatible with RECMODE"OSVS". |
VSC23 | Fixed or variable length depending on the file's record definitions. If all record definitions for the file are the same length, and are fixed length and/or the FD entry has a RECORD CONTAINS x CHARACTERS clause, the file is fixed-length record format. Otherwise it is variable-length record format. This setting is compatible with VS COBOL II and COBOL/370 when compiled with NOCMPR2. |
For an individual file this directive is overridden if the FD contains either a RECORD IS VARYING phrase (which specifies variable format) or a RECORDING MODE clause.
Makes the Compiler display its internal reference number at the start of a compilation as well as at the bottom of every listing.
>>-.---.-.----.--REFNO--------------------->< .-/-+ .-NO-+
None
Default: | NOREFNO |
Phase: | Syntax check |
$SET: | No |
Enables you to select how the remainder is calculated in a DIVIDE statement.
>>----------REMAINDER---"integer"----><
integer | Must be 1 or 2. |
Default: | REMAINDER"2" |
Phase: | Syntax check |
$SET: | Initial |
integer can be set to:
1 | The Compiler uses the ANSI 85 algorithm. |
2 | The Compiler uses an algorithm employing a subsidiary quotient. This subsidiary quotient is signed and is of sufficient size to hold any valid value. All current IBM mainframe compilers use this non-standard algorithm. |
Removes words from the reserved word list, so that they can be used as user-defined words.
+----------. v | >>-.---.--REMOVE--"rsv-word"--------------->< .-/-+
rsv-word |
A reserved word. |
Default: | No reserved words are removed. |
Phase: | Syntax check |
$SET: | Initial |
This directive does not appear in the list created with the SETTING directive.
Specifies the maximum length of a Report Writer line.
>>-.---.-.-----REPORT-LINE--"integer"-.---->< .-/-+ .-NO--REPORT-LINE------------+
integer |
The maximum length, in characters. |
Default: | REPORT-LINE"256" |
Phase: | Syntax check |
$SET: | Initial |
Makes the Compiler produce line numbers.
>>-.---.-.----.--RESEQ--------------------->< .-/-+ .-NO-+
None
Default: | RESEQ |
Phase: | Syntax check |
$SET: | Initial |
Set to RESEQ immediately by XREF.
Set to NORESEQ immediately by SEQCHK.
Set to NORESEQ at end by SOURCEFORMAT"FREE".
These are COBOL line sequence numbers, starting at 1 and increasing in increments of 1.
Specifies that when a READ statement finds that a record is locked the read operation is to be retried repeatedly until the record is available.
>>-.---.-.----.--RETRYLOCK----------------->< .-/-+ .-NO-+
None
Default: | NORETRYLOCK |
Phase: | Syntax check |
$SET: | Any |
Set to NORETRYLOCK immediately by NORM.
Set to RETRYLOCK immediately by RM or RM"ANSI".
This directive affects a file only if the file has a FILE STATUS item but there is no declarative specifically for that file.
Allows REWRITE statements on line sequential files.
>>-.---.-.----.--REWRITE-LS---------------->< .-/-+ .-NO-+
None
Default: | REWRITE-LS |
Phase: | Syntax check |
$SET: | No |
You must make sure that the record you write is the same size as the one it replaces.
Specifies that words reserved in Ryan-McFarland COBOL V2.0 are to be regarded as reserved words, and changes the behavior of certain features to be compatible with that COBOL system.
>>-.---.-.-------RM--"ANSI"-.-------------->< .-/-+ ..----.-RM---------+ .-NO-+
ANSI |
See Comments. |
Default: | NORM |
Phase: | Syntax check |
$SET: | Initial |
RM sets SEQUENTIAL"LINE", NOTRUNC, OLDINDEX, NOOPTIONAL-FILE,
RETRYLOCK, COMP-6"1" and ALIGN"2" immediately.
RM"ANSI" sets SEQUENTIAL"RECORD", NOTRUNC, OLDINDEX,
NOOPTIONAL-FILE, RETRYLOCK, COMP-6"1" and ALIGN"2"
immediately.
NORM sets SEQUENTIAL"RECORD", TRUNC"ANSI",
NOOLDINDEX, OPTIONAL-FILE, NORETRYLOCK, COMP-6"2" and ALIGN"8"
immediately.
With the ANSI parameter these features behave as they do when a program is compiled in that COBOL system with the ANSI switch set. See your Language Reference - Additional Topics for more information on Ryan-McFarland COBOL V2.0.
Specifies the size of the RETURN-CODE special register and its alignment in memory.
>>-.---.--RTNCODE-SIZE--"integer"---------->< .-/-+
integer |
2, 4 or 8. |
Default: | RTNCODE-SIZE"4" |
Phase: | Syntax check |
$SET: | Initial |
Set to RTNCODE-SIZE"4" immediately by XOPEN.
Set to RTNCODE-SIZE"8" immediately by P64.
The possible values of integer are:
2 | PIC S9(4) COMP: size 2 bytes, aligned on a two-byte boundary. |
4 | PIC S9(9) COMP: size 4 bytes, aligned on a four-byte boundary. |
8 | PIC S9(16) COMP: size 8 bytes, aligned on an eight-byte boundary. |
If a program calls a program with a smaller RETURN-CODE set, on return the value from the called program is in the lower bytes of the RETURN-CODE, with the other bytes undefined. For example, if a program with a 4-byte RETURN-CODE calls a program with a 2-byte RETURN-CODE, the lower two bytes of the 8-byte RETURN-CODE are set, while the content of the other bytes is undefined.
If a program calls a program with a larger RETURN-CODE set, on return the lower bytes of the value from the called program are in the RETURN-CODE, with the content of the upper bytes lost. For example, if a program with a 4-byte RETURN-CODE calls a program with an 8-byte RETURN-CODE, the lower four bytes of the 8-byte RETURN-CODE are set, while the content of the other bytes is lost.
Specifies that words reserved under the Systems Application Architecture (SAA) definition of COBOL are to be treated as reserved words.
>>-.---.-.-------SAA--"level"-.------------>< .-/-+ ..----.-SAA----------+ .-NO-+
level |
An integer specifying the level of SAA support required. |
Default: | NOSAA |
Phase: | Syntax check |
$SET: | Initial |
SAA sets DBSPACE and DBCS"2" immediately.
SAA"2" sets ANS85 at end.
The possible values of level are:
1 | SAA level 1 supported |
2 | SAA level 2 supported |
Specifying SAA with no parameters is the same as specifying SAA"2".
Turns on COBOL segmentation.
>>-.---.-.----.--SEG----------------------->< .-/-+ .-NO-+
None
Default: | SEG |
Phase: | Syntax check |
$SET: | Initial |
With NOSEG, the Compiler treats all section numbers in the code as if they were zero. This means that the Compiler ignores segmentation and creates one program with no overlays.
Makes the Compiler check the sequence numbers in columns 1 through 6 and identify source lines that are out of sequence.
>>-.---.-.----.--SEQCHK-------------------->< .-/-+ .-NO-+
None
Default: | NOSEQCHK |
Phase: | Syntax check |
$SET: | Any |
SEQCHK sets NORESEQ immediately.
Set to NOSEQCHK at end by SOURCEFORMAT"FREE".
Specifies the default file type for files defined (implicitly or explicitly) as ORGANIZATION SEQUENTIAL.
>>-.---.--SEQUENTIAL--"type"--------------->< .-/-+
type |
ADVANCING, ANSI, LINE, or RECORD. |
Default: | SEQUENTIAL"RECORD" |
Phase: | Syntax check |
$SET: | Initial |
Set to SEQUENTIAL"RECORD" immediately by NORM or RM"ANSI".
Set to SEQUENTIAL"LINE" immediately by RM.
The possible values of type are:
ADVANCING | RECORD SEQUENTIAL with LINE ADVANCING. |
ANSI | ANSI-conforming RECORD SEQUENTIAL. |
LINE | LINE SEQUENTIAL. |
RECORD | RECORD SEQUENTIAL (a standard SEQUENTIAL file). |
Specifies that the program is to be run in a multi-threaded environment.
>>---.----.----SERIAL--------->< .-NO-+
None
Default: | NOSERIAL |
Phase: | Generate |
$SET: | Initial |
If you specify this directive, thread-checking code is created that enables the run-time system to detect program entry. If this is not the first active COBOL program, the run-time system blocks on program entry until the previous program has exited. This enables COBOL programs to exist safely in a multi-threaded environment. This directive should be used on the first COBOL program to be executed on any given thread.
Note that the thread checking code takes time and is called on every program entry. Programs should only be compiled with this directive if they are going to run in a multi-threaded environment.
Makes the Compiler include in the source listing a list of the settings of directives.
>>-.---.-.-------.-SETTING--.-.----------.-.->< .-/-+ | .-SETTINGS-+ .-"format"-+ | ..----.-.-SETTING--.--------------+ .-NO-+ .-SETTINGS-+
format |
The layout of the listing. Only affects the listing given during the syntax check phase. |
Default: | NOSETTING |
Phase: | Syntax check |
$SET: | Any |
Set to NOSETTING by NOLIST at end.
When used in the check phase, format can be one of:
LINE | Lines of directives, each separated from the next by a space. |
COL | One directive per line. |
COL3 | Three directives per line in columns. |
If format is not specified, LINE is assumed.
A few directives provided only for compatibility with other COBOL systems (for example, COMMIT) are not shown. Also not shown are directives that control code generation, make specific changes to the reserved word list, or are synonymous with other directives.
If the directive is specified other than on a $SET statement, the directives list is produced before processing the program source. If the directive is specified on a $SET statement, the list is produced once all the directives on that statement have been processed. In each case, the list contains the state of each directive at that point.
Makes the Compiler show the contents of directives files in the source listing.
>>-.---.-.----.--SHOW-DIR------------------>< .-/-+ .-NO-+
None
Default: | NOSHOW-DIR |
Phase: | Syntax check |
$SET: | Any |
A directives file is the file cobol.dir or a file that appears in a DIRECTIVES or USE directive. For the contents of cobol.dir to appear in the source listing, SHOW-DIR must be specified at the start of cobol.dir, as this file is processed before any other directive.
You can use SHOW-DIR and NOSHOW-DIR selectively so that only parts of the directives file are output to the listing.
Specifies whether, for numeric DISPLAY items with included signs, the signs are to be interpreted according to the ASCII or EBCDIC convention.
>>-.---.--SIGN--"convention"--------------->< .-/-+
convention |
Either ASCII or EBCDIC. |
Default: | SIGN"ASCII" |
Phase: | Syntax check |
$SET: | Initial |
Set to SIGN"ASCII" immediately by CHARSET"ASCII".
Set to SIGN"EBCDIC" at end by CHARSET"EBCDIC".
Selects free or fixed format for COBOL source.
>>-.---.--SOURCEFORMAT--"format-type"------>< .-/-+
format-type |
FIXED or FREE. The format of COBOL source. |
Default: | SOURCEFORMAT"FIXED" |
Phase: | Syntax check |
$SET: | Any |
SOURCEFORMAT"FREE" sets NOMFCOMMENT, NORESEQ and NOSEQCHK at end.
See the Language Reference for details on free and fixed format code.
Causes space characters in numeric data items of USAGE DISPLAY to be treated as zeros.
>>-.---.-.----.--SPZERO-------------------->< .-/-+ .-NO-+
None
Default: | NOSPZERO |
Phase: | Syntax-check |
$SET: | Any |
With NOSPZERO, space characters in numeric data items give unpredictable results.
Allows EXEC SQL statements in your program.
>>-.---.-.----SQL-.----------------------.-.-->< .-/-+ | | +-----.---.-----. | | | | | .-,-+ | | | | | v | | | | .-(.-option=setting-.)-+ | | | | | | .-NO-option------+ | .-NO-SQL--------------------------+
option |
One of the SQL options (see below) |
setting |
The setting for the option |
Default: | NOSQL |
Phase: | Syntax check |
$SET: | Initial |
Available options are:
ACCESS | Specifies the name of the access plan to be created by precompiler services and stored in the database. |
BIND | Specifies the name of the bind file to be created by precompiler services. |
BLOCK | Specifies the record blocking mode to be used on plan creation. |
COMMIT | Specifies where implicit COMMIT statements should be generated. |
CTRACE | Causes listing output to contain diagnostics showing calls to precompiler services. |
DB | Specifies the name of the database that the program accesses. |
DB2 | Specifies that data items defined outside the scope of a Declare Section are allowed as host variables. This is for compatibility with IBM mainframes. |
DBMAN | Specifies the database engine family that is being used at both compilation and run time. |
ECSPP | This directive is reserved for use with the add-on products "Micro Focus HOST Compatibility Option for IBM Database Manager" and "Micro Focus DB2 Option". Do not change its setting. |
FORMAT | Determines the date and time format when date/time fields are assigned to string representations in host variables. |
INIT | Makes the program initialize SQL, log on to the database, and register a process to protect the database on abnormal program termination. |
ISOLATION | Specifies the isolation level to use. |
NOT | Specifies the value to use for the NOT character (¬). |
PASS | Specifies the user ID and password of the database. |
STDLVL | Specifies the standards level of the database manager. |
To process EXEC SQL statements for access to a database engine, you must specify the SQL directive. If you want to have EXEC SQL statements processed as standard EXEC syntax (see your Language Reference for details), you must explicitly specify the directive NOSQL.
Each of the following lines has the same effect:
SQL(FORMAT=LOC, DBMAN=IBM, DB=SAMPLE, NOBIND) SQL(FORMAT=LOC DBMAN=IBM DB=SAMPLE NOBIND) SQL(FORMAT=LOC IBM DB=SAMPLE NOBIND) SQL(FORMAT=LOC) SQL(IBM) SQL(DB=SAMPLE) SQL(NOBIND)
Specifies the name of the access plan to be created by precompiler services and stored in the database.
>>-.-------ACCESS=--access-plan-.->< ..----.-ACCESS---------------+ .-NO-+
access-plan |
The root of a filename, or a null string. |
Default: | ACCESS |
The name of the access plan is not a filename and so must not have an extension.
If you specify ACCESS, the access plan is given the same name as the compiled program, without path or extension.
The name of the access plan is always folded to upper case as required by DDCS/2.
If no access plan is to be created, use NOACCESS.
Specifies the name of the bind file to be created by precompiler services.
>>-.-------BIND=--bindfile-name-.->< ..----.-BIND-----------------+ .-NO-+
bindfile-name |
A full file specification or a null string. |
Default: | NOBIND |
If you specify BIND, the bind file is given the same name as the compiled program, except that the file extension becomes .bnd.
If no bind file is to be created, use NOBIND.
Specifies the record blocking mode to be used on plan creation.
>>---BLOCK=--block-mode-----------><
block-mode |
The blocking mode to be used. |
Default: | BLOCK=UNAMBIG |
The possible values of block-mode are:
ALL | Blocking occurs for fetch-only cursors. Ambiguous cursors are treated as fetch-only. |
UNAMBIG | Blocking occurs for fetch-only cursors. Ambiguous cursors are treated as updatable. |
NO | Blocking does not occur. |
Specifies where implicit COMMIT statements should be generated.
>>---COMMIT=--level---------------><
level |
The level number. |
Default: | COMMIT=2 |
To preserve the integrity of a database on an abnormal program termination, code can be generated to roll back changes when the database manager shuts down. Code can also be generated at strategic points in your program to commit changes made to the database up to that point. The level number in the COMMIT SQL option specifies where these statements should be generated, as follows:
1 | No COMMIT statements implicitly generated |
2 | COMMIT statements are implicitly generated on STOP RUN statements and at the end of the program |
3 | COMMIT statements are implicitly generated on STOP RUN and EXIT PROGRAM statements and at the end of the program |
4 | COMMIT statements are implicitly generated after every SQL statement |
This option requires INIT to be set.
Causes listing output to contain diagnostics showing calls to precompiler services.
>>-.----.--CTRACE----------------->< .-NO-+
None
Default: | NOCTRACE |
This option only affects what the listing file, if produced, contains. It does not determine if a listing file is produced, or the name of the file.
Specifies the name of the database that the program accesses.
>>-.-----DB=--database-name-.----->< .-NO--DB-----------------+
database-name |
An alphanumeric string obeying the rules for a Database Manager database name. |
Default: | NODB |
This option should always be specified.
Specifies that data items defined outside the scope of a Declare Section are allowed as host variables. This is for compatibility with IBM mainframes.
>>-.----.--DB2-------------------->< .-NO-+
None
Default: | DB2 |
With NODB2, any data item that is defined outside a Declare Section and is used in an SQL statement is assumed to be an SQLDA.
With DB2 set, data items are inspected to see if they are host variables or an SQLDA. This provides compatibility with DB2 on IBM mainframes.
This option also allows the use of group host variables for compatibility with IBM mainframes.
This option does not affect other DB2 extensions provided by the Compiler.
Specifies the database engine family that is being used at both compilation and run time.
>>--.--------.--database-manager-->< .-DBMAN=-+
database-manager |
The type of database engine to use. |
Default: | DBMAN=IBM |
The possible values of database-manager are IBM or MSSQL. Use IBM if you are using one of the following database engines:
IBM OS/2 Extended Edition Database Manager
IBM Extended Services/2 V1.0 Database Manager
IBM DB2/2 V1.0
IBM DB2/2 V1.2
IBM DB2/6000 V1
IBM DB2 V2.0 (with functionality limited to that of V1.x)
Use MSSQL if you are using Microsoft SQL Server V4.2 or later with Microsoft embedded SQL for COBOL developers kit V4.21 or later.
This option is reserved for use with the add-on products "Micro Focus HOST Compatibility Option for IBM Database Manager" and "Micro Focus DB2 Option". Do not change its setting.
>>-.-------ECSPP=--parameter-.---->< ..----.-ECSPP-------------+ .-NO-+
parameter |
This parameter has no effect on the behavior of this option. It is included for compatibility purposes. |
Default: | NOECSPP |
Determines the date and time format when date and time fields are assigned to string representations in host variables.
>>---FORMAT=--date-format---------><
date-format |
Identifies the format to use. |
Default: | FORMAT=LOC |
The possible values of date-format are:
DEF | determined by country code |
USA | mm/dd/yyyy hh:mm xM (AM/PM) |
EUR | dd.mm.yyyy hh.mm.ss |
ISO | yyyy-mm-dd hh.mm.ss |
JIS | yyyy-mm-dd hh:mm:ss |
LOC | Local form |
When DEF or LOC is specified, these are the formats used:
------------------------------------------------------------ Country LOC date LOC time DEF date DEF time ------------------------------------------------------------ 001 USA mm-dd-yyyy hh:mm:ss mm/dd/yyyy hh:mm xM 002 Canada/Fr dd-mm-yyyy hh.mm.ss yyyy-mm-dd hh.mm.ss 044 UK dd/mm/yyyy hh:mm:ss dd/mm/yyyy hh:mm:ss 033 France dd/mm/yyyy hh:mm:ss dd.mm.yyyy hh.mm.ss 049 Germany dd/mm/yyyy hh.mm.ss yyyy-mm-dd hh.mm.ss 034 Spain dd/mm/yyyy hh:mm:ss dd/mm/yyyy hh:mm:ss 039 Italy dd/mm/yyyy hh:mm:ss dd/mm/yyyy hh:mm:ss 046 Sweden dd/mm/yyyy hh.mm.ss yyyy-mm-dd hh.mm.ss 045 Denmark dd-mm-yyyy hh.mm.ss yyyy-mm-dd hh.mm.ss 047 Norway dd/mm/yyyy hh.mm.ss dd.mm.yyyy hh.mm.ss 031 Netherlands dd-mm-yyyy hh:mm:ss yyyy-mm-dd hh.mm.ss 032 Belgium dd/mm/yyyy hh:mm:ss dd/mm/yyyy hh:mm:ss ------------------------------------------------------------
See your your SQL documentation for more details.
Makes the program initialize SQL and log on to the database.
>>-.-------INIT=--mode-.---------->< ..----.-INIT--------+ .-NO-+
mode |
Specifies whether the database is to be used in shared or exclusive mode. |
Default: | INIT=PROT |
INIT causes the program to initialize the connection to the database. As part of this process it registers a procedure so that the database is always properly closed down when a STOP RUN occurs. Without this you can leave the database in a corrupt condition if the program terminates before completion; for example, if you terminate an animation session before completing the program.
The possible values of mode are:
PROT | For SQL programs that need to protect the database on STOP RUN but do not want to initialize. |
S | Database to be used in shared mode |
X | Database to be used in exclusive mode |
NOINIT should be specified for SQL programs that are called by other SQL programs. It can also be specified for the first SQL program in a run-unit, but the program must contain one of the following before executing any other EXEC SQL statement:
Specifies the isolation level to use.
>>---ISOLATION=--isol-level-------><
isol-level |
The isolation level to use. |
Default: | ISOLATION=CS |
The possible values of isol-level are:
RR | Repeatable read |
CS | Cursor stability |
UR | Uncommitted read |
Specifies the value to use for the NOT character (¬).
>>---NOT=--integer----------------><
integer |
The ASCII value, in decimal, of the character to use. |
Default: | NOT=170 |
You can specify any value from 0 through 255 for integer. This option is provided for use on operating systems that do not use 170 to represent the not (¬) character.
Specifies the user ID and password of the database.
>>-.-----PASS=--"usid.passwd"-.--->< .-NO--PASS-----------------+
usid.passwd |
An alphanumeric string obeying the rules for a user ID and password, separated by a period. The period can be omitted. |
Default: | NOPASS |
If the database has no password, use NOPASS. This option should only be specified if you are compiling against a remote database.
Specifies the standard level of the database manager.
>>---STDLVL=--standard-level------><
standard-level |
The standard level to be used. |
Default: | STDLVL=NONE |
Possible values for standard-level are:
NONE | FOR UPDATE clause is required on cursor declarations if tables are updated through the cursor. |
MIA | FOR UPDATE clause is optional. Using this option might degrade performance. |
Specifies that, at run-time:
>>-.---.-.-SSRANGE-----"integer"--.--><
.-/-+ .-NOSSRANGE--------------+
integer | The level of SSRANGE support required |
Default: | NOSSRANGE |
Phase: | Syntax check |
$SET: | Initial |
Sets BOUND immediately
The possible values of integer are:
1 | Causes a 153 error to occur at run-time if an attempt is made to use a reference-modified expression with the length having a negative or zero value. |
Causes error messages to be echoed to STDERR rather than to the console (STDOUT).
>>-.---.-.----.--STDERR-------------------->< .-/-+ .-NO-+
None
Default: | STDERR |
Phase: | Syntax check |
$SET: | Any |
Makes parameters to the program remain linked during subsequent calls of the program.
>>-.---.-.------STICKY-LINKAGE--"integer"-.->< .-/-+ .-NO---STICKY-LINKAGE------------+
integer |
Either 1 or 2 |
Default: | NOSTICKY-LINKAGE |
Phase: | Syntax check |
$SET: | Initial |
The purpose of the COBOL Linkage Section is to provide a linkage between a level 01 or level 77 data item declared in the Linkage Section (a linkage item) and some dynamically specified data item so that they appear to share the same storage area. The linkage is established by one of three means: a CALL statement referencing a program-name, a CALL statement referencing an entry-name or a SET statement. The first mechanism is the standard one specified by ANSI. The other two are COBOL language extensions that are supported by this COBOL system.
In ANSI COBOL, the Linkage Section enables a called program to access the parameters passed to it by a CALL statement. The number of parameters in the USING phrase of the CALL statement must equal the number of parameters in the USING phrase of the PROCEDURE DIVISION header. Any level 01 or level 77 data item in the Linkage Section that does not appear in the USING phrase of the PROCEDURE DIVISION header must not be referenced.
The ENTRY statement is a COBOL language extension that provides an alternative entry point into a program. The ENTRY statement takes a USING phrase in the same way as the PROCEDURE DIVISION header, and, in a similar fashion, linkage items must not be referenced if they do not appear in the USING phrase associated with the entry-name by which the program was invoked.
The SET statement enables a POINTER value that identifies a storage location to be used to link a linkage item. Such a linkage item can then be referenced in order to reference the data held at that storage location.
The following details explain in conceptual terms when linkage items are linked and unlinked.
This COBOL system checks at run time when a linkage item is referenced, to ensure it is linked to a data item. It gives a run-time error if it is not linked to any storage location. To facilitate this check, on each invocation immediately before executing the first statement in the program, all linkage items are first unlinked and then linkage items that have corresponding parameters passed by the calling program are linked. This means that a linkage item in a called program that is linked to a data item by the SET statement does not remain linked on subsequent invocations of the program; the SET statement needs to be executed in each invocation.
Many other COBOL implementations are less rigorous in enforcing the ANSI rules and the STICKY-LINKAGE directive takes a parameter to specify two alternative and less rigorous regimes.
STICKY-LINKAGE"1" specifies that only the linkage items that appear in the USING phrase of the called program are unlinked; other linkage items retain any previous linkage. If the program was called using the program-name this is the USING phrase of the PROCEDURE DIVISION header. Otherwise, this is the USING phrase associated with the entry-point by which the program was invoked.
Under this regime, if the calling program provides insufficient parameters and a reference is made to a linkage item that appears in the USING phrase but has no corresponding parameter in the USING phrase of the CALL statement, a run-time error is still given.
STICKY-LINKAGE"2" specifies that, except when the program is in its initial state at start-up or after it is referenced in a CANCEL statement, no linkage items are unlinked when the program is called. All linkage items retain any linkage established during previous invocations unless the calling program provides a parameter or a SET statement is used to change the linkage.
If STICKY-LINKAGE"2" is used for a called program, it can be called only by a COBOL program.
Note: No particular implementation method is implied in the above paragraphs and indeed, on this COBOL system, emulating the non-ANSI conformant behavior using this directive can have a detrimental effect on program size and execution speed.
If the following program is compiled without the STICKY-LINKAGE directive and run, a run-time error 203, CALL parameter not supplied, is given after the second CALL statement passes control to "ent" and the DISPLAY statement references two linkage items that do not appear in the USING phrase of ENTRY "ent".
If the program is then compiled with STICKY-LINKAGE"1" and run, execution progresses until it fails again after the third CALL statement passes control to "sub" and the DISPLAY statement references a linkage item that does appear in the USING phrase of the PROCEDURE DIVISION header but has no corresponding parameter passed by the CALL statement.
If the program is compiled with STICKY-LINKAGE"2" and run, the program successfully executes to completion.
program-id. main. working-storage section. 01 param pic x value "a". procedure division. call "sub" using param call "ent" call "sub" stop run. end program main. program-id. sub. linkage section. 01 link-1 pic x. 01 link-2 pic x. procedure division using link-1. set address of link-2 to address of link-1 display link-1 link-2 exit program. entry "ent" display link-1 link-2 exit program.
PARAMCOUNTCHECK Compiler directive
Specifies the behavior of PERFORM statements when a program is reentered.
>>-.---.-.----.--STICKY-PERFORM------------>< .-/-+ .-NO-+
None
Default: | NOSTICKY-PERFORM |
Phase: | Syntax check |
$SET: | Initial |
This directive has an effect only if your program was compiled with either PERFORM-TYPE"OSVS" or PERFORM-TYPE"RM" specified.
If you specified PERFORM-TYPE"OSVS" or PERFORM-TYPE"RM" when compiling, PERFORM statements are implemented by having a storage area, or bucket, associated with each place in the program that can be the end of a PERFORM statement's range. When a PERFORM statement is executed the return address is stored in the bucket, and at the end of the PERFORM statement's range the bucket is read to determine where control should return to and then cleared.
By default, an EXIT PROGRAM statement clears these buckets, so that if the program is reentered, none of the return addresses of the previously executed PERFORM statements remains. Specifying STICKY-PERFORM stops the buckets from being cleared by an EXIT PROGRAM statement. This means that on reentry, the return addresses of all previously executed PERFORM statements remain.
A STOP RUN or CANCEL statement clears the buckets regardless of the setting of this directive.
PERFORM-TYPE Compiler directive
Suppresses form-feed characters on the compilation listing if it is sent to the screen.
>>-.---.-.----.--SUPFF--------------------->< .-/-+ .-NO-+
None
Default: | SUPFF |
Phase: | Syntax check |
$SET: | Any |
Makes programmable switches behave in the same way as in the proposed ISO2000 standard.
>>-.---.--SWITCH-TYPE--"integer"------------->< .-/-+
integer |
1, 2 or 3. |
Default: | SWITCH-TYPE"1" |
Phase: | Syntax check |
$SET: | Any |
Set integer to:
1 | Server Express behavior |
2 | ISO2000 behavior |
3 | Siemens BS2000 COBOL behavior |
In the proposed ISO2000 standard, and the Siemens BS2000 COBOL dialect, switches persist and are visible throughout a run-unit. For example, if program A calls program B then any changes to the switches in A are visible when B is called, and any changes made in B are visible in A when control returns to A. If, however, A terminates and B is called, then the changes made by A are lost. The space in which the switches are stored can be regarded as common to all programs in a run-unit; hence changes to the switches are visible to all programs.
In Server Express, and older versions of Micro Focus COBOL, any called subprogram (in this case B) has its own set of COBOL switches independent of any other program. If program A calls program B, program B's switches are set to the same values as A's were at program start - ignoring any changes A might have made to the switches. When control returns to program A, A's switches are exactly the same as they were before program control changed - ignoring any changes B might have made to the switches. B's switches are preserved (unless B is canceled), so that if invoked again its own switches are retain the values set when it called A. In this case, the space in which switches are stored can be regarded as unique to each program.
SWITCH-TYPE"3" supports the Siemens BS2000 COBOL TSW-n and USW-n switches.
You should only use SWITCH-TYPE"3" when the BS2000 add-on is present to provide the necessary run-time support.
BS2000 Compiler directive
DIALECT Compiler directive
ISO2000 Compiler directive
Sets the number from which the Compiler counts positions in the collating sequence when compiling the SYMBOLIC CHARACTERS clause.
>>-.---.--SYMBSTART--"integer"------------->< .-/-+
integer |
The number to be used. |
Default: | SYMBSTART"1" |
Phase: | Syntax check |
$SET: | Initial |
For ANSI conformance use SYMBSTART"1"; for compatibility with previous products use SYMBSTART"0".
With SYMBSTART"1", the COBOL statement:
symbolic characters bee is 67
declares a symbolic character bee representing "B" since, counting from 1, "B" is the 67th character in the ASCII collating sequence. With SYMBSTART"0", bee represents "C".
Tells the Compiler whether it can generate certain instructions available only on certain microprocessors. Use of these instructions increases the speed and slightly reduces the size of the code.
>>-.---.--TARGET--"processor-id"----------->< .-/-+
processor-id |
Identifies the processor type |
Default: | TARGET"386" |
Phase: | Generate |
$SET: | Initial |
This directive is only available on Server Express on SCO UNIX.
The possible values of processor-id are:
386 | The code executes on 80386, 80486 and Pentium processors. |
486 | Includes instructions that are available only on 80486 and Pentium processors. |
PENTIUM | As for "486", but switches on certain optimizations which improve code speed when run on a Pentium processor, at the cost of increased code size. None of these optimizations prevent the code running on a 486. |
Determines whether the last page of a report file is to be padded with blank lines until it is a full page in length.
>>-.---.-.----.--TERMPAGE------------------>< .-/-+ .-NO-+
None
Default: | TERMPAGE |
Phase: | Syntax check |
$SET: | Initial |
Specifying TERMPAGE causes the last page of a report to be padded with blank lines until it is a full page in length.
This directive affects any report file for which the PAGE phrase is specified in its Report Description (RD) entry.
Puts the time at the top of each page of the listing.
>>-.---.-.----.--TIME---------------------->< .-/-+ .-NO-+
None
Default: | TIME |
Phase: | Syntax check |
$SET: | No |
This directive has no effect if NODATE is specified.
Tells the Compiler that the program contains legal but unstructured perform-ranges, and that certain optimizations cannot, therefore, be made.
>>-.---.-.----.--TRICKLE------------------->< .-/-+ .-NO-+
None
Default: | TRICKLE |
Phase: | Generate |
$SET: | Initial |
Use of the NOTRICKLE directive is not recommended; if you specify it, the behavior of your program might change. NOTRICKLE tells the Compiler that nowhere in the program could control "trickle" from one perform-range into another. Such a program has structured flow of control: it contains no paragraph or section that is entered both by being performed and by control falling into it from the preceding code, and none that is at the end of the range of one PERFORM and in the middle of the range of another PERFORM.
With NOTRICKLE, the Compiler can generate more efficient code for PERFORM statements.
Specifies whether data being stored into a USAGE COMP, USAGE BINARY or USAGE COMP-4 item is to be truncated to the size given by the item's PICTURE clause or to the maximum size the item can hold.
>>-.---.-.-------TRUNC--"method"-.--------->< .-/-+ ..----.-TRUNC-----------+ .-NO-+
method |
See Comments. |
Default: | TRUNC"ANSI" |
Phase: | Syntax check |
$SET: | Initial |
Set to TRUNC"ANSI" immediately by NORM.
Set to NOTRUNC immediately by RM or RM"ANSI".
The possible values of this directive are:
TRUNC | Truncate in decimal to the number of digits given by the PICTURE clause, on all stores into COMP, BINARY and COMP-4 items. |
NOTRUNC | Truncate in binary to the capacity of the allocated storage, on all stores into COMP, BINARY and COMP-4 items. |
TRUNC"ANSI" | Truncate in decimal to the number of digits given by the PICTURE clause, on non-arithmetic stores into COMP, BINARY and COMP-4 items. On arithmetic statements that cause the size error condition and that have no ON SIZE ERROR phrase, the result is undefined. |
Specifies whether to truncate the names of copyfiles and ++INCLUDE files.
>>-.---.-.----TRUNCCOPY--"integer"-.------->< .-/-+ .-NO-TRUNCCOPY------------+
integer |
The number of characters to truncate the name of the copyfile to. Value between 8 and 255 inclusive. |
Default: | NOTRUNCCOPY |
Phase: | Syntax check |
$SET: | Initial |
Makes the Compiler read directives from a file.
>>-.---.--USE--"filename"------------------>< .-/-+
filename |
A full file specification. |
Default: | Not set |
Phase: | Syntax check |
$SET: | Any |
USE is synonymous with DIRECTIVES. All rules that apply to DIRECTIVES also apply to USE.
Sends messages from the Compiler to the screen.
>>-.---.-.----.--VERBOSE------------------->< .-/-+ .-NO-+
None
Default: | NOVERBOSE |
Phase: | Syntax check |
$SET: | No |
VERBOSE sets CONFIRM immediately.
When VERBOSE is specified, messages concerning accepted directives and the size of code and data areas are displayed on the screen.
Specifies that words reserved in IBM VS COBOL II are to be treated as reserved words, and enables selected features for compatibility with a given level of that COBOL system.
>>-.---.-.-------VSC2--"integer"-.--------->< .-/-+ ..----.-VSC2------------+ .-NO-+
integer |
The level of IBM VS COBOL II to be compatible with. |
Default: | NOVSC2 |
Phase: | Syntax check |
$SET: | Initial |
If integer > 1, VSC2"integer" sets DBSPACE
and DBCS"2" immediately.
If integer > 2, VSC2"integer" sets ANS85 at
end.
The following table shows the compatibility specified by integer:
integer | Compatible with |
---|---|
1 | VS COBOL II release 1.0
You should be aware that:
|
2 | VS COBOL II release 2.0 VS COBOL II release 3.x (when compiled with its CMPR2 directive) VS COBOL II release 4.x (when compiled with its CMPR2 directive) COBOL/370 V1R1 (when compiled with its CMPR2 directive) You should be aware that:
|
3 | VS COBOL II release 3.x (when compiled with
its NOCMPR2 directive)
You should be aware that:
|
4 | Synonymous with VSC2"3". |
When VSC2 is specified without integer, VSC2"4" is assumed.
ANSI'85 status codes are used when VSC2"3" is selected.
Do not use the NOANS85 directive after VSC2"3"; it turns off some of the ANSI'85 behavior turned on by VSC2"3".
Specifies the lowest severity level of errors to report.
>>-.---.-.----.-WARNING--.-"integer"-.----->< .-/-+ | .-WARNINGS-+ | .-NO-.-WARNING--.-----------+ .-WARNINGS-+
integer |
1, 2 or 3. |
Default: | WARNING"1" |
Phase: | Syntax check |
$SET: | Any |
The possible values of integer are:
1 | Only those of level U, S, or E. |
2 | Only those of level U, S, E, or W. |
3 | All levels, that is, levels U, S, E, W, and I. |
With NOWARNING only those of level U or S are reported.
FLAGAS Compiler directive
FLAGCD Compiler directive
This directive is reserved for internal use by this COBOL system. Because it might appear in the list of settings, it is included for completeness. It is not intended for your use, and its setting should not be changed.
>>-.---.-.----.--WB------------------------>< .-/-+ .-NO-+
None
Default: | NOWB |
Phase: | Syntax check |
$SET: | No |
WB sets ANIM immediately.
This directive is reserved for internal use by this COBOL system. Because it might appear in the list of settings, it is included for completeness. It is not intended for your use, and its setting should not be changed.
>>-.---.-.----.--WB2----------------------->< .-/-+ .-NO-+
None
Default: | NOWB2 |
Phase: | Syntax check |
$SET: | No |
This directive is reserved for internal use by this COBOL system. Because it might appear in the list of settings, it is included for completeness. It is not intended for your use, and its setting should not be changed.
>>-.---.-.----.--WB3----------------------->< .-/-+ .-NO-+
None
Default: | NOWB3 |
Phase: | Syntax check |
$SET: | No |
Makes the WRITE and REWRITE statements acquire a record lock when the program is locking multiple records in a shared data file in a multi-user environment.
>>-.---.-.----.-.-WRITELOCK--.------------->< .-/-+ .-NO-+ .-WRITE-LOCK-+
None
Default: | NOWRITELOCK |
Phase: | Syntax check |
$SET: | Initial |
This directive is included for compatibility with earlier file sharing products. When writing new programs you should use the relevant locking syntax rather than this directive.
Specifies that disk writes are not to be buffered.
>>-.---.-.----.-.-WRITETHROUGH-.----------->< .-/-+ .-NO-+ .-WRITETHRU----+
None
Default: | NOWRITETHROUGH |
Phase: | Syntax check |
$SET: | All |
Requires CALLFH to be set.
This directive is not available in this system without the appropriate add-on product from MERANT. Do not change its setting unless you have an appropriate COBOL system product from MERANT.
To specify this directive on an individual file, use $SET statements in your source program, so that the directive is in effect only for that part of the source containing the file's SELECT statement.
When WRITETHROUGH is specified, the system does not buffer disk writes.
Using WRITETHROUGH helps improve the integrity of data files by ensuring that every write operation goes to the disk file straight away, reducing the possibility of losing data if your computer crashes. However, it also bypasses all cacheing and blocking methods, resulting in poorer performance.
Specifies that words reserved under the X/Open definition of COBOL are to be treated as reserved words.
>>-.---.-.-------XOPEN--"level"-.---------->< .-/-+ ..----.-XOPEN----------+ .-NO-+
level |
Must be 3 or 4. The level of the X/Open definition COBOL to be compatible with. |
Default: | NOXOPEN |
Phase: | Syntax check |
$SET: | Initial |
XOPEN sets RTNCODE-SIZE"4" immediately.
The possible values of level are:
3 | Compatible with X/Open Portability Guide 1988 (XPG-3) |
4 | Compatible with X/Open CAE Specification (XPG-4) |
Specifying XOPEN with no parameter is the same as specifying XOPEN"4".
XPG-4 specifies options for several environments. If available, the options are as follows:
DBCS Compiler directive
NLS Compiler directive
RTNCODE-SIZE Compiler directive
Makes the Compiler produce a cross-reference listing.
>>-.---.-.----.--XREF---------------------->< .-/-+ .-NO-+
None
Default: | NOXREF |
Phase: | Syntax check |
$SET: | Initial |
XREF sets RESEQ immediately.
Set to NOXREF at end by NOLIST and RNIM.
On UNIX, to produce the message "*End of cross reference listing"
in the cross reference listing you must also specify the verbose compiler
option, -v.
This directive has no effect if the LIST directive is not specified.
To produce the cross-reference listing the Compiler needs extra work space on the disk. The space needed depends on the number of data items and procedure-names and the number of times they are referenced.
When the XREF directive is specified, extra information is added to the end of the .lst file produced:
The following is an extract from a .lst file for a simple program:
1 working-storage section. 2 01 a pic 9(2). 3 4 procedure division. 5 main section. 6 move 1 to a 7 if a = 1 display "HELLO" end-if 8 stop run. ... * A Numeric DISPLAY * 2# 6* 7? (X 3) * * 1 data-names * * MAIN Section * 5# (X 1) * * * 1 procedure-names * End of cross reference listing
The cross-referencing information shows that there is one data item, a, of type numeric display, which is defined on line 2, updated on line 6, and tested on line 7. The (X 3) at the end of the line refers to the number of times the data item appears in the cross-reference listing. The procedure-name main also appears in the listing, as a section which is referenced only once.
RESEQ Compiler directive
Changes the way that class tests involving zero-length items are carried out.
>>-.---.-.----.--ZEROLENGTHFALSE----------->< .-/-+ .-NO-+
None
Default: | NOZEROLENGTHFALSE |
Phase: | Syntax check |
$SET: | Any |
When ZEROLENGTHFALSE is set, all comparisons between zero-length group items, and between zero-length items and figurative constants, return false; when it is not set, they all return true.
For conformance to ANSI and SAA you must set ZEROLENGTHFALSE.
Causes leading zeros to appear in the sequence numbers in columns 1 through 6.
>>-.---.-.----.--ZEROSEQ------------------->< .-/-+ .-NO-+
None
Default: | NOZEROSEQ |
Phase: | Syntax check |
$SET: | Any |
NOZEROSEQ suppresses these leading zeros.
Affects the operation of comparisons between integer numeric data items of USAGE DISPLAY and alphanumeric literals or figurative constants.
>>-.---.-.----.--ZWB----------------------->< .-/-+ .-NO-+
None
Default: | NOZWB |
Phase: | Syntax check |
$SET: | Any |
The ZWB directive affects the range of comparisons that HOST-NUMCOMPARE applies to. With ZWB on, only unsigned comparisons are affected. Otherwise, all comparisons are affected.
HOST-NUMCOMPARE Compiler directive
Copyright © 2000 MERANT International Limited. All rights reserved.
This document and the proprietary marks and names
used herein are protected by international law.
Using the Compiler | Callable Shared Objects |