Opencobol Manual: Keisuke Nishida / Roger While
Opencobol Manual: Keisuke Nishida / Roger While
Table of Contents
1 Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Hello World!. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 Compile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.1 Compiler Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.1.1 Help Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.1.2 Built Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.1.3 Source Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.4 Warning Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.5 Configuration Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.6 Debug Switches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.7 Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Multiple Sources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.1 Static Linking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.2 Dynamic Linking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.3 Building Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.4 Using Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3 C Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3.1 Writing Main Program in C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3.2 Static linking with COBOL programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.3 Dynamic linking with COBOL programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.4 Static linking with C programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.5 Dynamic linking with C programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3 Customize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.1 Customizing Compiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 Customizing Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4 Optimize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.1 Optimize Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2 Optimize Call . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.3 Optimize Binary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5 Debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.1 Debug Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Appendix G config/default.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Chapter 1: Getting Started 1
1 Getting Started
2 Compile
This chapter describes how to compile COBOL programs using OpenCOBOL.
-S Compile only. Translated C files are compiled by the C compiler to assembler code.
The output is saved in file ‘*.s’.
-c Compile and assemble. This is equivalent to cc -c. The output is saved in file ‘*.o’.
-m Compile, assemble, and build a dynamically loadable module (i.e., a shared library).
The output is saved in file ‘*.so’. This is the default behaviour if not other options
are given.2 .
-b Compile, assemble, and combine all input files into a single dynamically loadable
module. Unless -o is also used, the output is saved using the first filename as ‘*.so’.
-x Include the main function in the output, creating an executable image. The main
entry point being the outermost PROGRAM-ID.
This option takes effect at the translation stage. If you give this option with -C,
you will see the main function at the end of the generated C file.
-I <directory>
Add <directory> to copy/include search path
-L <directory>
Add <directory> to library search path
-l <lib> Link the library <lib>
-D <define>
Pass <define> to the COBOL compiler
-o <file> Place the output into <file>
Without any options above, the compiler builds a dynamically loadable module.
-Wcolumn-overflow
Warn if text after column 72 in FIXED format (NOT set with -Wall)
-Wconstant
Warn inconsistent constant
-Wimplicit-define
Warn implicitly defined data items
-Wlinkage
Warn dangling LINKAGE items (NOT set with -Wall)
-Wobsolete
Warn if obsolete features are used
-Wparentheses
Warn lack of parentheses around AND within OR
-Wredefinition
Warn incompatible redefinition of data items
-Wstrict-typing
Warn type mismatch strictly
-Wterminator
Warn lack of scope terminator END-XXX (NOT set with -Wall)
-Wtruncate
Warn possible field truncation (NOT set with -Wall)
-Wunreachable
Warn unreachable statements (NOT set with -Wall)
2.1.7 Miscellaneous
-P Generate and place a program listing into ‘*.lst’
-ext <extension>
Add default file extension
-fmfcomment
’*’ or ’/’ in column 1 treated as comment (FIXED only)
-fsign=ASCII
Numeric display sign ASCII (Default on ASCII machines)
-fsign=EBCDIC
Numeric display sign EBCDIC (Default on EBCDIC machines)
-ffunctions-all
Allow use of intrinsic functions without FUNCTION keyword
-ffold-copy=LOWER
Fold COPY subject to lower case (Default no transformation)
-ffold-copy=UPPER
Fold COPY subject to upper case (Default no transformation)
-save-temps(=<dir>)
Save intermediate files (default current directory)
Chapter 2: Compile 6
$ export COB_LIBRARY_PATH=/your/cobol/lib
Note: You may set the variable to directly point to the directory where you compiled the
sources.
Now execute your program:
$ cobcrun main
Method 2. The main program and subprograms can be compiled separately.
The main program is compiled as usual:
$ cobc -x -o main main.cob
Subprograms are compiled with the option -m:
$ cobc -m subr.cob
This creates a module file ‘subr.so’4 .
Before running the main program, install the module files in your library directory:
$ cp subr.so /your/cobol/lib
Now, set the environment variable COB_LIBRARY_PATH to your library directory, and run the
main program:
$ export COB_LIBRARY_PATH=/your/cobol/lib
$ ./main
2.3 C Interface
This chapter describes how to combine C programs with COBOL programs.
int
main (int argc, char **argv)
4
The extension varies depending on your host.
Chapter 2: Compile 8
{
/* initialize your program */
...
}
You can write cobc_init(0, NULL); if you do not want to pass command line arguments to
COBOL.
You can compile your C program as follows:
cc -c ‘cob-config --cflags‘ main.c
The compiled object must be linked with libcob as follows:
cc -o main main.o ‘cob-config --libs‘
int
main()
{
int ret;
char hello[7] = "Hello ";
Chapter 2: Compile 9
cob_init(0, NULL);
return ret;
}
----------------------------------------
Compile these programs as follows:
$ cc -c ‘cob-config --cflags‘ hello.c
$ cobc -c -static say.cob
$ cobc -x -o hello hello.o say.o
$ ./hello
Hello World!
int
main()
{
int ret;
char hello[7] = "Hello ";
char world[7] = "World!";
cob_init(0, NULL);
/* call the module found and exit with the return code */
ret = say(hello, world);
return ret;
}
----------------------------------------
Chapter 2: Compile 10
3 Customize
4 Optimize
5 Debug
Options:
-help Display this message
-version, -V Display compiler version
-info, -i Display compiler build information
-v Display the commands invoked by the compiler
-x Build an executable program
-m Build a dynamically loadable module (default)
-std=<dialect> Warnings/features for a specific dialect :
cobol2002 Cobol 2002
cobol85 Cobol 85
ibm IBM Compatible
mvs MVS Compatible
bs2000 BS2000 Compatible
mf Micro Focus Compatible
default When not specified
See config/default.conf and config/*.conf
-free Use free source format
-fixed Use fixed source format (default)
-O, -O2, -Os Enable optimization
-g Enable C compiler debug / stack check / trace
-debug Enable all run-time error checking
-o <file> Place the output into <file>
-b Combine all input files into a single
dynamically loadable module
-E Preprocess only; do not compile or link
-C Translation only; convert COBOL to C
-S Compile only; output assembly file
-c Compile and assemble, but do not link
-P(=<dir or file>) Generate preprocessed program listing (.lst)
-Xref Generate cross reference through ’cobxref’
(V. Coen’s ’cobxref’ must be in path)
-I <directory> Add <directory> to copy/include search path
-L <directory> Add <directory> to library search path
-l <lib> Link the library <lib>
-A <options> Add <options> to the C compile phase
-Q <options> Add <options> to the C link phase
-D <define> DEFINE <define> to the COBOL compiler
-K <entry> Generate CALL to <entry> as static
-conf=<file> User defined dialect configuration - See -std=
-list-reserved Display reserved words
-list-intrinsics Display intrinsic functions
-list-mnemonics Display mnemonic names
-list-system Display system routines
-save-temps(=<dir>) Save intermediate files
- Default : current directory
-ext <extension> Add default file extension
OpenCOBOL information
COB_CC : gcc -std=gnu99
COB_CFLAGS : -I/usr/local/include -pipe
COB_LDFLAGS :
COB_LIBS : -L/usr/local/lib -lcob -lm -lgmp -lncursesw
-ldb
COB_CONFIG_DIR : /usr/local/share/open-cobol/config
COB_COPY_DIR : /usr/local/share/open-cobol/copy
COB_LIBRARY_PATH : /usr/local/lib/open-cobol
COB_MODULE_EXT : so
COB_EXEEXT :
Dynamic loading : System
"CBL_" param check : Disabled
Variable format : 0
BINARY-C-LONG : 8 bytes
Sequential handler : Internal
ISAM handler : BDB
Appendix C: cobc --list-reserved 19
ACCEPT Y
ACCESS Y
ACTIVE-CLASS N
ADD Y
ADDRESS Y
ADVANCING Y
AFTER Y
ALIGNED N
ALL Y
ALLOCATE Y
ALPHABET Y
ALPHABETIC Y
ALPHABETIC-LOWER Y
ALPHABETIC-UPPER Y
ALPHANUMERIC Y
ALPHANUMERIC-EDITED Y
ALSO Y
ALTER Y
ALTERNATE Y
AND Y
ANY Y
ANYCASE N
ARE Y
AREA Y
AREAS Y
ARGUMENT-NUMBER Y
ARGUMENT-VALUE Y
ARITHMETIC N (Context sensitive)
AS Y
ASCENDING Y
ASCII Y (Context sensitive)
ASSIGN Y
AT Y
ATTRIBUTE Y (Context sensitive)
AUTO Y
AUTO-SKIP Y
AUTOMATIC Y
AUTOTERMINATE Y
AWAY-FROM-ZERO Y (Context sensitive)
B-AND N
B-NOT N
B-OR N
B-XOR N
BACKGROUND-COLOR Y
BACKGROUND-COLOUR Y
BASED Y
BEEP Y
Appendix C: cobc --list-reserved 20
BEFORE Y
BELL Y
BINARY Y
BINARY-C-LONG Y
BINARY-CHAR Y
BINARY-DOUBLE Y
BINARY-INT Y
BINARY-LONG Y
BINARY-LONG-LONG Y
BINARY-SHORT Y
BIT N
BLANK Y
BLINK Y
BLOCK Y
BOOLEAN N
BOTTOM Y
BY Y
BYTE-LENGTH Y (Context sensitive)
CALL Y
CANCEL Y
CAPACITY N (Context sensitive)
CD N (85 obsolete)
CENTER N (Context sensitive)
CF Y
CH Y
CHAIN N
CHAINING Y
CHARACTER Y
CHARACTERS Y
CLASS Y
CLASS-ID N
CLASSIFICATION Y (Context sensitive)
CLOSE Y
CODE Y
CODE-SET Y
COL Y
COLLATING Y
COLS Y
COLUMN Y
COLUMNS Y
COMMA Y
COMMAND-LINE Y
COMMIT Y
COMMON Y
COMMUNICATION N (85 obsolete)
COMP Y
COMP-1 Y
COMP-2 Y
COMP-3 Y
COMP-4 Y
COMP-5 Y
COMP-6 Y
Appendix C: cobc --list-reserved 21
COMP-X Y
COMPUTATIONAL Y
COMPUTATIONAL-1 Y
COMPUTATIONAL-2 Y
COMPUTATIONAL-3 Y
COMPUTATIONAL-4 Y
COMPUTATIONAL-5 Y
COMPUTATIONAL-X Y
COMPUTE Y
CONDITION Y
CONFIGURATION Y
CONSTANT Y
CONTAINS Y
CONTENT Y
CONTINUE Y
CONTROL Y
CONTROLS Y
CONVERSION Y (Context sensitive)
CONVERTING Y
COPY Y
CORR Y
CORRESPONDING Y
COUNT Y
CRT Y
CRT-UNDER Y
CURRENCY Y
CURSOR Y
CYCLE Y (Context sensitive)
DATA Y
DATA-POINTER N
DATE Y
DAY Y
DAY-OF-WEEK Y
DE Y
DEBUGGING Y
DECIMAL-POINT Y
DECLARATIVES Y
DEFAULT Y
DELETE Y
DELIMITED Y
DELIMITER Y
DEPENDING Y
DESCENDING Y
DESTINATION N
DETAIL Y
DISABLE N
DISC Y (Context sensitive)
DISK Y (Context sensitive)
DISPLAY Y
DIVIDE Y
DIVISION Y
DOWN Y
Appendix C: cobc --list-reserved 22
DUPLICATES Y
DYNAMIC Y
EBCDIC Y (Context sensitive)
EC Y
EGI N (85 obsolete)
ELSE Y
EMI N (85 obsolete)
EMPTY-CHECK Y
ENABLE N (85 obsolete)
END Y
END-ACCEPT Y
END-ADD Y
END-CALL Y
END-CHAIN N
END-COMPUTE Y
END-DELETE Y
END-DISPLAY Y
END-DIVIDE Y
END-EVALUATE Y
END-IF Y
END-MULTIPLY Y
END-OF-PAGE Y
END-PERFORM Y
END-READ Y
END-RECEIVE N (85 obsolete)
END-RETURN Y
END-REWRITE Y
END-SEARCH Y
END-START Y
END-STRING Y
END-SUBTRACT Y
END-UNSTRING Y
END-WRITE Y
ENTRY Y
ENTRY-CONVENTION N (Context sensitive)
ENVIRONMENT Y
ENVIRONMENT-NAME Y
ENVIRONMENT-VALUE Y
EO N
EOL Y (Context sensitive)
EOP Y
EOS Y (Context sensitive)
EQUAL Y
EQUALS Y
ERASE Y
ERROR Y
ESCAPE Y
ESI N (85 obsolete)
EVALUATE Y
EXCEPTION Y
EXCEPTION-OBJECT N
EXCLUSIVE Y
Appendix C: cobc --list-reserved 23
EXIT Y
EXPANDS N (Context sensitive)
EXTEND Y
EXTERNAL Y
FACTORY N
FALSE Y
FD Y
FILE Y
FILE-CONTROL Y
FILE-ID Y
FILLER Y
FINAL Y
FIRST Y
FLOAT-BINARY-128 N
FLOAT-BINARY-32 N
FLOAT-BINARY-64 N
FLOAT-DECIMAL-16 Y
FLOAT-DECIMAL-34 Y
FLOAT-EXTENDED N
FLOAT-INFINITY N
FLOAT-LONG Y
FLOAT-NOT-A-NUMBER N (Context sensitive)
FLOAT-SHORT Y
FOOTING Y
FOR Y
FOREGROUND-COLOR Y
FOREGROUND-COLOUR Y
FOREVER Y
FORMAT N
FREE Y
FROM Y
FULL Y
FUNCTION Y
FUNCTION-ID Y
FUNCTION-POINTER N
GENERATE Y
GET N
GIVING Y
GLOBAL Y
GO Y
GOBACK Y
GREATER Y
GROUP Y
GROUP-USAGE N
HEADING Y
HIGH-VALUE Y
HIGH-VALUES Y
HIGHLIGHT Y
I-O Y
I-O-CONTROL Y
ID Y
IDENTIFICATION Y
Appendix C: cobc --list-reserved 24
IF Y
IGNORE Y
IGNORING Y
IMPLEMENTS N (Context sensitive)
IN Y
INDEX Y
INDEXED Y
INDICATE Y
INDIRECT N (Context sensitive)
INHERITS N
INITIAL Y
INITIALISE Y
INITIALISED Y
INITIALIZE Y
INITIALIZED Y
INITIATE Y
INPUT Y
INPUT-OUTPUT Y
INSPECT Y
INTERFACE N
INTERFACE-ID N
INTERMEDIATE N (Context sensitive)
INTO Y
INTRINSIC Y (Context sensitive)
INVALID Y
INVOKE N
IS Y
JUST Y
JUSTIFIED Y
KEPT Y
KEY Y
KEYBOARD Y (Context sensitive)
LABEL Y
LAST Y
LC_ALL N (Context sensitive)
LC_COLLATE N (Context sensitive)
LC_CTYPE N (Context sensitive)
LC_MESSAGES N (Context sensitive)
LC_MONETARY N (Context sensitive)
LC_NUMERIC N (Context sensitive)
LC_TIME N (Context sensitive)
LEADING Y
LEFT Y
LEFT-JUSTIFY N
LEFTLINE Y
LENGTH Y
LENGTH-CHECK Y
LESS Y
LIMIT Y
LIMITS Y
LINAGE Y
LINAGE-COUNTER Y
Appendix C: cobc --list-reserved 25
LINE Y
LINE-COUNTER Y
LINES Y
LINKAGE Y
LOCAL-STORAGE Y
LOCALE Y
LOCK Y
LOW-VALUE Y
LOW-VALUES Y
LOWER Y (Context sensitive)
LOWLIGHT Y
MANUAL Y
MEMORY Y
MERGE Y
MESSAGE N (85 obsolete)
METHOD N
METHOD-ID N
MINUS Y
MODE Y
MOVE Y
MULTIPLE Y
MULTIPLY Y
NAME Y (Context sensitive)
NATIONAL Y
NATIONAL-EDITED Y
NATIVE Y
NEAREST-AWAY-FROM-ZERO Y (Context sensitive)
NEAREST-EVEN Y (Context sensitive)
NEAREST-TOWARD-ZERO Y (Context sensitive)
NEGATIVE Y
NESTED N
NEXT Y
NO Y
NO-ECHO Y
NONE N (Context sensitive)
NORMAL Y (Context sensitive)
NOT Y
NULL Y
NULLS Y
NUMBER Y
NUMBERS Y
NUMERIC Y
NUMERIC-EDITED Y
OBJECT N
OBJECT-COMPUTER Y
OBJECT-REFERENCE N
OCCURS Y
OF Y
OFF Y
OMITTED Y
ON Y
ONLY Y
Appendix C: cobc --list-reserved 26
OPEN Y
OPTIONAL Y
OPTIONS N
OR Y
ORDER Y
ORGANISATION Y
ORGANIZATION Y
OTHER Y
OUTPUT Y
OVERFLOW Y
OVERLINE Y
OVERRIDE N
PACKED-DECIMAL Y
PADDING Y
PAGE Y
PAGE-COUNTER Y
PARAGRAPH Y (Context sensitive)
PERFORM Y
PF Y
PH Y
PIC Y
PICTURE Y
PLUS Y
POINTER Y
POSITION Y
POSITIVE Y
PREFIXED N (Context sensitive)
PRESENT Y
PREVIOUS Y
PRINTER Y (Context sensitive)
PRINTING Y
PROCEDURE Y
PROCEDURE-POINTER Y
PROCEDURES Y
PROCEED Y
PROGRAM Y
PROGRAM-ID Y
PROGRAM-POINTER Y
PROHIBITED Y (Context sensitive)
PROMPT Y
PROPERTY N
PROTOTYPE N
PURGE N (85 obsolete)
QUEUE N (85 obsolete)
QUOTE Y
QUOTES Y
RAISE N
RAISING N
RANDOM Y
RD Y
READ Y
RECEIVE N (85 obsolete)
Appendix C: cobc --list-reserved 27
RECORD Y
RECORDING Y
RECORDS Y
RECURSIVE Y (Context sensitive)
REDEFINES Y
REEL Y
REFERENCE Y
REFERENCES Y
RELATION N (Context sensitive)
RELATIVE Y
RELEASE Y
REMAINDER Y
REMOVAL Y
RENAMES Y
REPLACE Y
REPLACING Y
REPORT Y
REPORTING Y
REPORTS Y
REPOSITORY Y
REQUIRED Y
RESERVE Y
RESET Y
RESUME N
RETRY N
RETURN Y
RETURNING Y
REVERSE-VIDEO Y
REVERSED Y
REWIND Y
REWRITE Y
RF Y
RH Y
RIGHT Y
RIGHT-JUSTIFY N
ROLLBACK Y
ROUNDED Y
ROUNDING N (Context sensitive)
RUN Y
SAME Y
SCREEN Y
SCROLL Y (Context sensitive)
SD Y
SEARCH Y
SECONDS N (Context sensitive)
SECTION Y
SECURE Y
SEGMENT N (85 obsolete)
SEGMENT-LIMIT Y
SELECT Y
SELF N
SEND N (85 obsolete)
Appendix C: cobc --list-reserved 28
SENTENCE Y
SEPARATE Y
SEQUENCE Y
SEQUENTIAL Y
SET Y
SHARING Y
SIGN Y
SIGNED Y
SIGNED-INT Y
SIGNED-LONG Y
SIGNED-SHORT Y
SIZE Y
SORT Y
SORT-MERGE Y
SOURCE Y
SOURCE-COMPUTER Y
SOURCES N
SPACE Y
SPACE-FILL N
SPACES Y
SPECIAL-NAMES Y
STANDARD Y
STANDARD-1 Y
STANDARD-2 Y
STANDARD-BINARY N (Context sensitive)
STANDARD-DECIMAL N (Context sensitive)
START Y
STATEMENT N (Context sensitive)
STATIC Y (Context sensitive)
STATUS Y
STDCALL Y (Context sensitive)
STEP Y
STOP Y
STRING Y
STRONG N (Context sensitive)
SUB-QUEUE-1 N (85 obsolete)
SUB-QUEUE-2 N (85 obsolete)
SUB-QUEUE-3 N (85 obsolete)
SUBTRACT Y
SUM Y
SUPER N
SUPPRESS Y
SYMBOL N (Context sensitive)
SYMBOLIC Y
SYNC Y
SYNCHRONISED Y
SYNCHRONIZED Y
SYSTEM-DEFAULT Y
TABLE N
TALLYING Y
TAPE Y (Context sensitive)
TERMINAL N (85 obsolete)
Appendix C: cobc --list-reserved 29
TERMINATE Y
TEST Y
TEXT N (85 obsolete)
THAN Y
THEN Y
THROUGH Y
THRU Y
TIME Y
TIME-OUT Y (Context sensitive)
TIMEOUT Y (Context sensitive)
TIMES Y
TO Y
TOP Y
TOWARD-GREATER Y (Context sensitive)
TOWARD-LESSER Y (Context sensitive)
TRAILING Y
TRAILING-SIGN N
TRANSFORM Y
TRUE Y
TRUNCATION Y (Context sensitive)
TYPE Y
TYPEDEF N
UCS-4 N (Context sensitive)
UNDERLINE Y
UNIT Y
UNIVERSAL N
UNLOCK Y
UNSIGNED Y
UNSIGNED-INT Y
UNSIGNED-LONG Y
UNSIGNED-SHORT Y
UNSTRING Y
UNTIL Y
UP Y
UPDATE Y
UPON Y
UPPER Y (Context sensitive)
USAGE Y
USE Y
USER Y (Context sensitive)
USER-DEFAULT Y
USING Y
UTF-16 N (Context sensitive)
UTF-8 N (Context sensitive)
VAL-STATUS N
VALID N
VALIDATE N
VALIDATE-STATUS N
VALUE Y
VALUES Y
VARYING Y
WAIT Y
Appendix C: cobc --list-reserved 30
WHEN Y
WITH Y
WORDS Y
WORKING-STORAGE Y
WRITE Y
YYYYDDD Y (Context sensitive)
YYYYMMDD Y (Context sensitive)
ZERO Y
ZERO-FILL N
ZEROES Y
ZEROS Y
LOG10 Y 1
LOWER-CASE Y 1
LOWEST-ALGEBRAIC Y 1
MAX Y Variable
MEAN Y Variable
MEDIAN Y Variable
MIDRANGE Y Variable
MIN Y Variable
MOD Y 2
MODULE-CALLER-ID Y 0
MODULE-DATE Y 0
MODULE-FORMATTED-DATE Y 0
MODULE-ID Y 0
MODULE-PATH Y 0
MODULE-SOURCE Y 0
MODULE-TIME Y 0
MONETARY-DECIMAL-POINT Y 0
MONETARY-THOUSANDS-SEPARATOR Y 0
NATIONAL-OF N Variable
NUMERIC-DECIMAL-POINT Y 0
NUMERIC-THOUSANDS-SEPARATOR Y 0
NUMVAL Y 1
NUMVAL-C Y 2
NUMVAL-F Y 1
ORD Y 1
ORD-MAX Y Variable
ORD-MIN Y Variable
PI Y 0
PRESENT-VALUE Y Variable
RANDOM Y Variable
RANGE Y Variable
REM Y 2
REVERSE Y 1
SECONDS-FROM-FORMATTED-TIME Y 2
SECONDS-PAST-MIDNIGHT Y 0
SIGN Y 1
SIN Y 1
SQRT Y 1
STANDARD-COMPARE N Variable
STANDARD-DEVIATION Y Variable
STORED-CHAR-LENGTH Y 1
SUBSTITUTE Y Variable
SUBSTITUTE-CASE Y Variable
SUM Y Variable
TAN Y 1
TEST-DATE-YYYYMMDD Y 1
TEST-DAY-YYYYDDD Y 1
TEST-FORMATTED-DATETIME N 2
TEST-NUMVAL Y 1
TEST-NUMVAL-C Y 2
TEST-NUMVAL-F Y 1
TRIM Y 2
Appendix D: cobc --list-intrinsics 33
UPPER-CASE Y 1
VARIANCE Y Variable
WHEN-COMPILED Y 0
YEAR-TO-YYYY Y Variable
Appendix E: cobc --list-system 34
SYSTEM 1
CBL_AND 3
CBL_CHANGE_DIR 1
CBL_CHECK_FILE_EXIST 2
CBL_CLOSE_FILE 1
CBL_COPY_FILE 2
CBL_CREATE_DIR 1
CBL_CREATE_FILE 5
CBL_DELETE_DIR 1
CBL_DELETE_FILE 1
CBL_EQ 3
CBL_ERROR_PROC 2
CBL_EXIT_PROC 2
CBL_FLUSH_FILE 1
CBL_GET_CSR_POS 1
CBL_GET_CURRENT_DIR 3
CBL_GET_SCR_SIZE 2
CBL_IMP 3
CBL_NIMP 3
CBL_NOR 3
CBL_NOT 2
CBL_OC_NANOSLEEP 1
CBL_OPEN_FILE 5
CBL_OR 3
CBL_READ_FILE 5
CBL_RENAME_FILE 2
CBL_TOLOWER 2
CBL_TOUPPER 2
CBL_WRITE_FILE 5
CBL_XOR 3
C$CALLEDBY 1
C$CHDIR 2
C$COPY 3
C$DELETE 2
C$FILEINFO 2
C$GETPID 0
C$JUSTIFY 1
C$MAKEDIR 1
C$NARG 1
C$PARAMSIZE 1
C$PRINTABLE 1
C$SLEEP 1
C$TOLOWER 2
C$TOUPPER 2
X"91" 2
X"E4" 0
X"E5" 0
Appendix E: cobc --list-system 35
X"F4" 2
X"F5" 2
Appendix F: cobc --list-mnemonics 36
Mnemonic names
SYSIN Device name
SYSIPT Device name
STDIN Device name
SYSOUT Device name
SYSLIST Device name
SYSLST Device name
STDOUT Device name
PRINTER Device name
SYSERR Device name
STDERR Device name
CONSOLE Device name
C01 Feature name
C02 Feature name
C03 Feature name
C04 Feature name
C05 Feature name
C06 Feature name
C07 Feature name
C08 Feature name
C09 Feature name
C10 Feature name
C11 Feature name
C12 Feature name
CSP Feature name
FORMFEED Feature name
CALL-CONVENTION Feature name
SWITCH-0 Switch name
SWITCH-1 Switch name
SWITCH-2 Switch name
SWITCH-3 Switch name
SWITCH-4 Switch name
SWITCH-5 Switch name
SWITCH-6 Switch name
SWITCH-7 Switch name
SWITCH-8 Switch name
SWITCH-9 Switch name
SWITCH-10 Switch name
SWITCH-11 Switch name
SWITCH-12 Switch name
SWITCH-13 Switch name
SWITCH-14 Switch name
SWITCH-15 Switch name
Appendix G config/default.conf
# OpenCOBOL compiler configuration
#
# Copyright (C) 2001,2002,2003,2004,2005,2006,2007 Keisuke Nishida
# Copyright (C) 2007-2012 Roger While
#
# This file is part of OpenCOBOL.
#
# The OpenCOBOL compiler is free software: you can redistribute it
# and/or modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# OpenCOBOL is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenCOBOL. If not, see <http://www.gnu.org/licenses/>.
# Value: enum
standard-define 0
# CB_STD_OC = 0,
# CB_STD_MF,
# CB_STD_IBM,
# CB_STD_MVS,
# CB_STD_BS2000,
# CB_STD_85,
# CB_STD_2002
# Value: int
tab-width: 8
text-column: 72
#
filename-mapping: yes
# Allow Hex ’F’ for NUMERIC test of signed PACKED DECIMAL field
hostsign: no
# not-reserved:
# Value: Word to be taken out of the reserved words list
# (case independent)
# Words that are in the (proposed) standard but may conflict
# Dialect features
# Value: ’ok’, ’archaic’, ’obsolete’, ’skip’, ’ignore’, ’unconformable’
alter-statement: obsolete
author-paragraph: obsolete
data-records-clause: obsolete
debugging-line: obsolete
eject-statement: skip
entry-statement: obsolete
goto-statement-without-name: obsolete
label-records-clause: obsolete
memory-size-clause: obsolete
move-noninteger-to-alphanumeric: error
multiple-file-tape-clause: obsolete
next-sentence-phrase: archaic
odo-without-to: ok
padding-character-clause: obsolete
section-segments: ignore
stop-literal-statement: obsolete
synchronized-clause: ok
top-level-occurs-clause: ok
value-of-clause: obsolete