Compiler Configuration

The following list was extracted from config/default.conf.

# Value: any string
name: "GnuCOBOL"

# Value: enum
standard-define                       0
# NOTE: see enum cb_std_def, defined in cobc/cobc.h.
#        CB_STD_GC = 0,
#        CB_STD_MF,
#        CB_STD_IBM,
#        CB_STD_MVS,
#        CB_STD_BS2000,
#        CB_STD_ACU,
#        CB_STD_RM,
#        CB_STD_85,
#        CB_STD_2002,
#        CB_STD_2014

# Default source reference-format; values: FIXED, FREE, COBOL85,
# VARIABLE, XOPEN, XCARD, CRT, TERMINAL, COBOLX
format:                               auto

# Value: int
tab-width:                    8
text-column:                  72
# Maximum word-length for COBOL words / Programmer defined words
# Be aware that GC checks the word length against COB_MAX_WORDLEN
# first (currently 63)
word-length:                  63

# Maximum literal size in general
literal-length:                       8191

# Maximum numeric literal size (absolute maximum: 38)
numeric-literal-length:               38

# Maximum number of characters allowed in the character-string (max. 255)
pic-length:                   255

# Enable AREACHECK by default, for reference formats other than {fixed,free}
areacheck:                    no

# Default assign type
# Value: 'dynamic', 'external'
assign-clause:                        dynamic

# If yes, file names are resolved at run time using
# environment variables.
# For example, given ASSIGN TO "DATAFILE", the file name will be
#  1. the value of environment variable 'DD_DATAFILE' or
#  2. the value of environment variable 'dd_DATAFILE' or
#  3. the value of environment variable 'DATAFILE' or
#  4. the literal "DATAFILE"
# If no, the value of the assign clause is the file name.
#
filename-mapping:             yes

# Alternate formatting of numeric fields
pretty-display:                       yes

# Allow complex OCCURS DEPENDING ON
complex-odo:                  no

# Adjust position of items following OCCURS DEPENDING
odoslide:                     no

# Allow REDEFINES to other than last equal level number
indirect-redefines:           no

# Binary byte size - defines the allocated bytes according to PIC
# Value:         signed  unsigned  bytes
#                ------  --------  -----
# '2-4-8'        1 -  4    same        2
#                5 -  9    same        4
#               10 - 18    same        8
#
# '1-2-4-8'      1 -  2    same        1
#                3 -  4    same        2
#                5 -  9    same        4
#               10 - 18    same        8
#
# '1--8'         1 -  2    1 -  2      1
#                3 -  4    3 -  4      2
#                5 -  6    5 -  7      3
#                7 -  9    8 -  9      4
#               10 - 11   10 - 12      5
#               12 - 14   13 - 14      6
#               15 - 16   15 - 16      7
#               17 - 18   17 - 18      8
#
binary-size:                  1-2-4-8

# Numeric truncation according to ANSI
binary-truncate:              yes

# Binary byte order
# Value: 'native', 'big-endian'
binary-byteorder:             big-endian

# Allow larger REDEFINES items other than 01 non-external
larger-redefines:             error

# Allow certain syntax variations (eg. REDEFINES position)
relax-syntax-checks:          no

# Allow zero length reference-modification
# (only checked with active EC-BOUND-REF-MOD)
ref-mod-zero-length:          yes

# Perform type OSVS - If yes, the exit point of any currently
# executing perform is recognized if reached.
perform-osvs:                 no

# Compute intermediate decimal results like IBM OSVS
arithmetic-osvs:              no

# MOVE like IBM (mvc); left to right, byte by byte
move-ibm:                     no

# SELECT RELATIVE KEY and ASSIGN fields must be in WORKING-STORAGE
select-working:               no

# LOCAL-STORAGE SECTION implies RECURSIVE attribute
local-implies-recursive:              no

# If yes, LINKAGE SECTION items remain allocated
# between invocations.
sticky-linkage:                       no

# If yes, allow non-matching level numbers
relax-level-hierarchy:                no

# If yes, evaluate constant expressions at compile time
constant-folding:             yes

# Allow Hex 'F' for NUMERIC test of signed PACKED DECIMAL field
hostsign:                     no

# If yes, set WITH UPDATE clause as default for ACCEPT dest-item,
# except if WITH NO UPDATE clause is used
accept-update:                        no

# If yes, set WITH AUTO clause as default for ACCEPT dest-item,
# except if WITH TAB clause is used
accept-auto:                  no

# If yes, DISPLAYs and ACCEPTs are, by default, done on the CRT (i.e., using
# curses).
console-is-crt:                       no

# If yes, allow redefinition of the current program's name. This prevents its
# use in a prototype-format CALL/CANCEL statement.
program-name-redefinition:    yes

# If yes, NO ECHO/NO-ECHO/OFF is the same as SECURE (hiding input with
# asterisks, not spaces).
no-echo-means-secure:         no

# If yes, the first item in a field screen ACCEPT/DISPLAY (e.g. DISPLAY x UPON
# CRT) is located after the previous ACCEPT/DISPLAY (as though LINE 0 COL 0 had
# been specified).
line-col-zero-default:                yes

# If yes, DISPLAY SPACES acts as ERASE EOS, DISPLAY X"01" acts as ERASE EOL,
# DISPLAY X"02" acts as BLANK SCREEEN and DISPLAY X"07" acts as BELL. Note
# DISPLAY LOW-VALUE is excluded from this; it will always just position the
# cursor.
display-special-fig-consts:   no

# If yes, COMP-1 is a signed 16-bit integer and any PICTURE clause is ignored.
binary-comp-1:                        no

# If yes, POINTER is handled as BINARY-DOUBLE UNSIGNED instead of its own class
numeric-pointer:              no

# auto-adjust to zero like MicroFocus does
move-non-numeric-lit-to-numeric-is-zero: no

# If yes, implicitly define a variable for an ASSIGN DYNAMIC which does not
# match an existing data item.
implicit-assign-dynamic-var:  yes

# If yes, ACCEPT and DISPLAY statements accept device names using mnemonics
device-mnemonics:                     no

# full clauses in XML PARSE - and adjusted XML-EVENTs
xml-parse-xmlss:              yes

# What rules to apply to SCREEN SECTION items clauses
screen-section-rules:         gc

# Whether DECIMAL-POINT IS COMMA has effect in XML/JSON GENERATE
dpc-in-data:                  xml

# Bounds against which to check subscripts (full, max, record)
subscript-check:              full

# Functionality of JUSTIFY for INITIALIZE verb and initialization of storage
init-justify:         no

# Dialect features
# Value: 'ok', 'warning', 'archaic', 'obsolete', 'skip', 'ignore', 'error',
#        'unconformable'

alter-statement:                      obsolete
comment-paragraphs:                   obsolete
control-division:                     unconformable
partial-replace-when-literal-src:     obsolete
call-overflow:                                archaic
data-records-clause:                  obsolete
debugging-mode:                               ok
use-for-debugging:                    ok
listing-statements:                   skip    # may be a user-defined word
title-statement:                      skip    # may be a user-defined word
entry-statement:                      ok
goto-statement-without-name:          obsolete
label-records-clause:                 obsolete
memory-size-clause:                   obsolete
move-noninteger-to-alphanumeric:      error
move-figurative-constant-to-numeric:  archaic
move-figurative-space-to-numeric:     error
move-figurative-quote-to-numeric:     obsolete
multiple-file-tape-clause:            obsolete
next-sentence-phrase:                 archaic
odo-without-to:                               warning
padding-character-clause:             obsolete
section-segments:                     ignore
stop-literal-statement:                       obsolete
stop-identifier-statement:            obsolete
stop-error-statement:                 unconformable
same-as-clause:                               ok
type-to-clause:                               ok
usage-type:                                   ok
synchronized-clause:                  ok
sync-left-right:                      ok
special-names-clause:                 ok
top-level-occurs-clause:              ok
value-of-clause:                      obsolete
numeric-boolean:                      ok
hexadecimal-boolean:                  ok
national-literals:                    ok
hexadecimal-national-literals:                ok
national-character-literals:          warning

acu-literals:                         unconformable
hp-octal-literals:                    unconformable
ebcdic-symbolic-characters:           no
word-continuation:                    warning
not-exception-before-exception:               ok
accept-display-extensions:            ok
renames-uncommon-levels:              ok
symbolic-constant:                    ok
constant-78:                          ok
constant-01:                          ok
perform-varying-without-by:           ok
reference-out-of-declaratives:                warning
program-prototypes:                   ok
call-convention-mnemonic:             ok
call-convention-linkage:              ok
using-optional:               ok
numeric-value-for-edited-item:                ok
incorrect-conf-sec-order:             ok
define-constant-directive:            archaic
free-redefines-position:              warning
records-mismatch-record-clause        warning
record-delimiter:                     ok
sequential-delimiters:                        ok
record-delim-with-fixed-recs:         ok
missing-statement:                    warning
missing-period:                               warning #when format not in {fixed,free}
zero-length-literals:                 ok
xml-generate-extra-phrases:           ok
continue-after:                               ok
goto-entry:                           warning
assign-variable:                      ok
assign-using-variable:                        ok
assign-ext-dyn:                               ok
assign-disk-from:                     ok
vsam-status:                          ignore
self-call-recursive:          warning
record-contains-depending-clause:     unconformable
defaultbyte:          init    # GC inits as INITIALIZE ALL TO VALUE THEN TO DEFAULT,
                              # with INDEXED BY variables initialized to 1
picture-l:                            ok

# use complete word list; synonyms and exceptions are specified below
reserved-words:               default

# not-reserved:
# Value: Word to be taken out of the reserved words list
not-reserved: TERMINAL
not-reserved: EXAMINE
# reserved:
#   Entries of the form word-1=word-2 define word-1 as an alias for default
# reserved word word-2. No spaces are allowed around the equal sign.
reserved:     AUTO-SKIP=AUTO
reserved:     AUTOTERMINATE=AUTO
reserved:     BACKGROUND-COLOUR=BACKGROUND-COLOR
reserved:     BEEP=BELL
reserved:     BINARY-INT=BINARY-LONG
reserved:     BINARY-LONG-LONG=BINARY-DOUBLE
reserved:     CELLS=CELL
reserved:     COLOURS=COLORS
reserved:     EMPTY-CHECK=REQUIRED
reserved:     EQUALS=EQUAL
reserved:     FOREGROUND-COLOUR=FOREGROUND-COLOR
reserved:     HIGH-VALUES=HIGH-VALUE
reserved:     INITIALISE=INITIALIZE
reserved:     INITIALISED=INITIALIZED
reserved:     LENGTH-CHECK=FULL
reserved:     LOW-VALUES=LOW-VALUE
reserved:     ORGANISATION=ORGANIZATION
reserved:     PIXELS=PIXEL
reserved:     SYNCHRONISED=SYNCHRONIZED
reserved:     TIMEOUT=TIME-OUT
reserved:     ZEROES=ZERO
reserved:     ZEROS=ZERO