88
OpenCOBOL 1.1 Programmers Guide
Sample Programs
06FEB2009 Version
Page 8-30
05 FILLER PIC X(33) VALUE " EXCEPTION".
05 FILLER PIC X(33) VALUE "IEXCEPTION-FILE".
05 FILLER PIC X(33) VALUE "IEXCEPTION-LOCATION".
05 FILLER PIC X(33) VALUE " EXCEPTION-OBJECT".
05 FILLER PIC X(33) VALUE "IEXCEPTION-STATEMENT".
05 FILLER PIC X(33) VALUE "IEXCEPTION-STATUS".
05 FILLER PIC X(33) VALUE " EXCLUSIVE".
05 FILLER PIC X(33) VALUE "VEXIT".
05 FILLER PIC X(33) VALUE "IEXP".
05 FILLER PIC X(33) VALUE "IEXP10".
05 FILLER PIC X(33) VALUE " EXTEND".
05 FILLER PIC X(33) VALUE " EXTERNAL".
05 FILLER PIC X(33) VALUE "IFACTORIAL".
05 FILLER PIC X(33) VALUE " FACTORY".
05 FILLER PIC X(33) VALUE " FALSE".
05 FILLER PIC X(33) VALUE "KFD".
05 FILLER PIC X(33) VALUE "KFILE".
05 FILLER PIC X(33) VALUE " FILE-CONTROL".
05 FILLER PIC X(33) VALUE " FILE-ID".
05 FILLER PIC X(33) VALUE " FILLER".
05 FILLER PIC X(33) VALUE " FINAL".
05 FILLER PIC X(33) VALUE " FIRST".
05 FILLER PIC X(33) VALUE " FLOAT-BINARY-16".
05 FILLER PIC X(33) VALUE " FLOAT-BINARY-34".
05 FILLER PIC X(33) VALUE " FLOAT-BINARY-7".
05 FILLER PIC X(33) VALUE " FLOAT-DECIMAL-16".
05 FILLER PIC X(33) VALUE " FLOAT-DECIMAL-34".
05 FILLER PIC X(33) VALUE " FLOAT-EXTENDED".
05 FILLER PIC X(33) VALUE " FLOAT-LONG".
05 FILLER PIC X(33) VALUE " FLOAT-SHORT".
05 FILLER PIC X(33) VALUE " FOOTING".
05 FILLER PIC X(33) VALUE " FOR".
05 FILLER PIC X(33) VALUE " FOREGROUND-COLOR".
05 FILLER PIC X(33) VALUE " FOREVER".
05 FILLER PIC X(33) VALUE " FORMAT".
05 FILLER PIC X(33) VALUE "MFORMFEED".
05 FILLER PIC X(33) VALUE "IFRACTION-PART".
05 FILLER PIC X(33) VALUE "VFREE".
05 FILLER PIC X(33) VALUE " FROM".
05 FILLER PIC X(33) VALUE " FULL".
05 FILLER PIC X(33) VALUE " FUNCTION".
05 FILLER PIC X(33) VALUE " FUNCTION-ID".
05 FILLER PIC X(33) VALUE " FUNCTION-POINTER".
05 FILLER PIC X(33) VALUE "VGENERATE".
05 FILLER PIC X(33) VALUE " GET".
05 FILLER PIC X(33) VALUE "KGIVING".
05 FILLER PIC X(33) VALUE " GLOBAL".
05 FILLER PIC X(33) VALUE "VGO".
05 FILLER PIC X(33) VALUE "VGOBACK".
05 FILLER PIC X(33) VALUE " GREATER".
05 FILLER PIC X(33) VALUE " GROUP".
05 FILLER PIC X(33) VALUE " GROUP-USAGE".
05 FILLER PIC X(33) VALUE " HEADING".
05 FILLER PIC X(33) VALUE " HIGH-VALUE".
05 FILLER PIC X(33) VALUE " HIGH-VALUES".
05 FILLER PIC X(33) VALUE " HIGHLIGHT".
05 FILLER PIC X(33) VALUE " I-O".
05 FILLER PIC X(33) VALUE " I-O-CONTROL".
05 FILLER PIC X(33) VALUE "KID".
05 FILLER PIC X(33) VALUE "KIDENTIFICATION".
05 FILLER PIC X(33) VALUE "VIF".
05 FILLER PIC X(33) VALUE " IGNORE".
05 FILLER PIC X(33) VALUE " IGNORING".
05 FILLER PIC X(33) VALUE " IN".
05 FILLER PIC X(33) VALUE " INDEX".
05 FILLER PIC X(33) VALUE "KINDEXED".
05 FILLER PIC X(33) VALUE " INDICATE".
05 FILLER PIC X(33) VALUE " INFINITY".
05 FILLER PIC X(33) VALUE " INHERITS".
05 FILLER PIC X(33) VALUE " INITIAL".
05 FILLER PIC X(33) VALUE " INITIALISED".
05 FILLER PIC X(33) VALUE "VINITIALIZE".
05 FILLER PIC X(33) VALUE " INITIALIZED".
05 FILLER PIC X(33) VALUE "VINITIATE".
05 FILLER PIC X(33) VALUE " INPUT".
05 FILLER PIC X(33) VALUE "KINPUT-OUTPUT".
05 FILLER PIC X(33) VALUE "VINSPECT".
05 FILLER PIC X(33) VALUE " INSTALLATION".
05 FILLER PIC X(33) VALUE "IINTEGER".
05 FILLER PIC X(33) VALUE "IINTEGER-OF-DATE".
05 FILLER PIC X(33) VALUE "IINTEGER-OF-DAY".
05 FILLER PIC X(33) VALUE "IINTEGER-PART".
05 FILLER PIC X(33) VALUE " INTERFACE".
05 FILLER PIC X(33) VALUE " INTERFACE-ID".
88
OpenCOBOL 1.1 Programmers Guide
Sample Programs
06FEB2009 Version
Page 8-31
05 FILLER PIC X(33) VALUE "KINTO".
05 FILLER PIC X(33) VALUE " INTRINSIC".
05 FILLER PIC X(33) VALUE " INVALID".
05 FILLER PIC X(33) VALUE " INVOKE".
05 FILLER PIC X(33) VALUE " IS".
05 FILLER PIC X(33) VALUE " JUST".
05 FILLER PIC X(33) VALUE " JUSTIFIED".
05 FILLER PIC X(33) VALUE " KEY".
05 FILLER PIC X(33) VALUE " LABEL".
05 FILLER PIC X(33) VALUE " LAST".
05 FILLER PIC X(33) VALUE " LEADING".
05 FILLER PIC X(33) VALUE " LEFT".
05 FILLER PIC X(33) VALUE " LEFT-JUSTIFY".
05 FILLER PIC X(33) VALUE "ILENGTH".
05 FILLER PIC X(33) VALUE " LESS".
05 FILLER PIC X(33) VALUE " LIMIT".
05 FILLER PIC X(33) VALUE " LIMITS".
05 FILLER PIC X(33) VALUE " LINAGE".
05 FILLER PIC X(33) VALUE "ILINAGE-COUNTER".
05 FILLER PIC X(33) VALUE " LINE".
05 FILLER PIC X(33) VALUE " LINE-COUNTER".
05 FILLER PIC X(33) VALUE " LINES".
05 FILLER PIC X(33) VALUE "KLINKAGE".
05 FILLER PIC X(33) VALUE "KLOCAL-STORAGE".
05 FILLER PIC X(33) VALUE " LOCALE".
05 FILLER PIC X(33) VALUE "ILOCALE-DATE".
05 FILLER PIC X(33) VALUE "ILOCALE-TIME".
05 FILLER PIC X(33) VALUE "ILOCALE-TIME-FROM-SECONDS".
05 FILLER PIC X(33) VALUE " LOCK".
05 FILLER PIC X(33) VALUE "ILOG".
05 FILLER PIC X(33) VALUE "ILOG10".
05 FILLER PIC X(33) VALUE " LOW-VALUE".
05 FILLER PIC X(33) VALUE " LOW-VALUES".
05 FILLER PIC X(33) VALUE " LOWER".
05 FILLER PIC X(33) VALUE "ILOWER-CASE".
05 FILLER PIC X(33) VALUE " LOWLIGHT".
05 FILLER PIC X(33) VALUE " MANUAL".
05 FILLER PIC X(33) VALUE "IMAX".
05 FILLER PIC X(33) VALUE "IMEAN".
05 FILLER PIC X(33) VALUE "IMEDIAN".
05 FILLER PIC X(33) VALUE " MEMORY".
05 FILLER PIC X(33) VALUE "VMERGE".
05 FILLER PIC X(33) VALUE " METHOD".
05 FILLER PIC X(33) VALUE " METHOD-ID".
05 FILLER PIC X(33) VALUE "IMIDRANGE".
05 FILLER PIC X(33) VALUE "IMIN".
05 FILLER PIC X(33) VALUE " MINUS".
05 FILLER PIC X(33) VALUE "IMOD".
05 FILLER PIC X(33) VALUE " MODE".
05 FILLER PIC X(33) VALUE "VMOVE".
05 FILLER PIC X(33) VALUE " MULTIPLE".
05 FILLER PIC X(33) VALUE "VMULTIPLY".
05 FILLER PIC X(33) VALUE " NATIONAL".
05 FILLER PIC X(33) VALUE " NATIONAL-EDITED".
05 FILLER PIC X(33) VALUE " NATIVE".
05 FILLER PIC X(33) VALUE " NEGATIVE".
05 FILLER PIC X(33) VALUE " NESTED".
05 FILLER PIC X(33) VALUE "VNEXT".
05 FILLER PIC X(33) VALUE " NO".
05 FILLER PIC X(33) VALUE " NOT".
05 FILLER PIC X(33) VALUE " NULL".
05 FILLER PIC X(33) VALUE " NULLS".
05 FILLER PIC X(33) VALUE " NUMBER".
05 FILLER PIC X(33) VALUE "INUMBER-OF-CALL-PARAMETERS".
05 FILLER PIC X(33) VALUE " NUMBERS".
05 FILLER PIC X(33) VALUE " NUMERIC".
05 FILLER PIC X(33) VALUE " NUMERIC-EDITED".
05 FILLER PIC X(33) VALUE "INUMVAL".
05 FILLER PIC X(33) VALUE "INUMVAL-C".
05 FILLER PIC X(33) VALUE " OBJECT".
05 FILLER PIC X(33) VALUE " OBJECT-COMPUTER".
05 FILLER PIC X(33) VALUE " OBJECT-REFERENCE".
05 FILLER PIC X(33) VALUE " OCCURS".
05 FILLER PIC X(33) VALUE " OF".
05 FILLER PIC X(33) VALUE " OFF".
05 FILLER PIC X(33) VALUE " OMITTED".
05 FILLER PIC X(33) VALUE " ON".
05 FILLER PIC X(33) VALUE " ONLY".
05 FILLER PIC X(33) VALUE "VOPEN".
05 FILLER PIC X(33) VALUE " OPTIONAL".
05 FILLER PIC X(33) VALUE " OPTIONS".
05 FILLER PIC X(33) VALUE " OR".
05 FILLER PIC X(33) VALUE "IORD".
05 FILLER PIC X(33) VALUE "IORD-MAX".
88
OpenCOBOL 1.1 Programmers Guide
Sample Programs
06FEB2009 Version
Page 8-32
05 FILLER PIC X(33) VALUE "IORD-MIN".
05 FILLER PIC X(33) VALUE " ORDER".
05 FILLER PIC X(33) VALUE " ORGANIZATION".
05 FILLER PIC X(33) VALUE " OTHER".
05 FILLER PIC X(33) VALUE " OUTPUT".
05 FILLER PIC X(33) VALUE " OVERFLOW".
05 FILLER PIC X(33) VALUE " OVERLINE".
05 FILLER PIC X(33) VALUE " OVERRIDE".
05 FILLER PIC X(33) VALUE " PACKED-DECIMAL".
05 FILLER PIC X(33) VALUE " PADDING".
05 FILLER PIC X(33) VALUE " PAGE".
05 FILLER PIC X(33) VALUE " PAGE-COUNTER".
05 FILLER PIC X(33) VALUE " PARAGRAPH".
05 FILLER PIC X(33) VALUE "VPERFORM".
05 FILLER PIC X(33) VALUE " PF".
05 FILLER PIC X(33) VALUE " PH".
05 FILLER PIC X(33) VALUE "IPI".
05 FILLER PIC X(33) VALUE "KPIC".
05 FILLER PIC X(33) VALUE "KPICTURE".
05 FILLER PIC X(33) VALUE " PLUS".
05 FILLER PIC X(33) VALUE "KPOINTER".
05 FILLER PIC X(33) VALUE " POSITION".
05 FILLER PIC X(33) VALUE " POSITIVE".
05 FILLER PIC X(33) VALUE " PRESENT".
05 FILLER PIC X(33) VALUE "IPRESENT-VALUE".
05 FILLER PIC X(33) VALUE " PREVIOUS".
05 FILLER PIC X(33) VALUE "MPRINTER".
05 FILLER PIC X(33) VALUE " PRINTING".
05 FILLER PIC X(33) VALUE "KPROCEDURE".
05 FILLER PIC X(33) VALUE " PROCEDURE-POINTER".
05 FILLER PIC X(33) VALUE " PROCEDURES".
05 FILLER PIC X(33) VALUE " PROCEED".
05 FILLER PIC X(33) VALUE " PROGRAM".
05 FILLER PIC X(33) VALUE "KPROGRAM-ID".
05 FILLER PIC X(33) VALUE " PROGRAM-POINTER".
05 FILLER PIC X(33) VALUE " PROMPT".
05 FILLER PIC X(33) VALUE " PROPERTY".
05 FILLER PIC X(33) VALUE " PROTOTYPE".
05 FILLER PIC X(33) VALUE " QUOTE".
05 FILLER PIC X(33) VALUE " QUOTES".
05 FILLER PIC X(33) VALUE " RAISE".
05 FILLER PIC X(33) VALUE " RAISING".
05 FILLER PIC X(33) VALUE "IRANDOM".
05 FILLER PIC X(33) VALUE "IRANGE".
05 FILLER PIC X(33) VALUE " RD".
05 FILLER PIC X(33) VALUE "VREAD".
05 FILLER PIC X(33) VALUE "VREADY".
05 FILLER PIC X(33) VALUE " RECORD".
05 FILLER PIC X(33) VALUE " RECORDING".
05 FILLER PIC X(33) VALUE " RECORDS".
05 FILLER PIC X(33) VALUE " RECURSIVE".
05 FILLER PIC X(33) VALUE "KREDEFINES".
05 FILLER PIC X(33) VALUE " REEL".
05 FILLER PIC X(33) VALUE " REFERENCE".
05 FILLER PIC X(33) VALUE " RELATIVE".
05 FILLER PIC X(33) VALUE "VRELEASE".
05 FILLER PIC X(33) VALUE "IREM".
05 FILLER PIC X(33) VALUE " REMAINDER".
05 FILLER PIC X(33) VALUE " REMARKS".
05 FILLER PIC X(33) VALUE " REMOVAL".
05 FILLER PIC X(33) VALUE "KRENAMES".
05 FILLER PIC X(33) VALUE "KREPLACING".
05 FILLER PIC X(33) VALUE "KREPORT".
05 FILLER PIC X(33) VALUE " REPORTING".
05 FILLER PIC X(33) VALUE " REPORTS".
05 FILLER PIC X(33) VALUE " REPOSITORY".
05 FILLER PIC X(33) VALUE " REPRESENTS-NOT-A-NUMBER".
05 FILLER PIC X(33) VALUE " REQUIRED".
05 FILLER PIC X(33) VALUE " RESERVE".
05 FILLER PIC X(33) VALUE " RESUME".
05 FILLER PIC X(33) VALUE " RETRY".
05 FILLER PIC X(33) VALUE "VRETURN".
05 FILLER PIC X(33) VALUE "IRETURN-CODE".
05 FILLER PIC X(33) VALUE "KRETURNING".
05 FILLER PIC X(33) VALUE "IREVERSE".
05 FILLER PIC X(33) VALUE " REVERSE-VIDEO".
05 FILLER PIC X(33) VALUE " REWIND".
05 FILLER PIC X(33) VALUE "VREWRITE".
05 FILLER PIC X(33) VALUE " RF".
05 FILLER PIC X(33) VALUE " RH".
05 FILLER PIC X(33) VALUE " RIGHT".
05 FILLER PIC X(33) VALUE " RIGHT-JUSTIFY".
05 FILLER PIC X(33) VALUE "VROLLBACK".
05 FILLER PIC X(33) VALUE " ROUNDED".
88
OpenCOBOL 1.1 Programmers Guide
Sample Programs
06FEB2009 Version
Page 8-33
05 FILLER PIC X(33) VALUE " RUN".
05 FILLER PIC X(33) VALUE " SAME".
05 FILLER PIC X(33) VALUE "KSCREEN".
05 FILLER PIC X(33) VALUE " SCROLL".
05 FILLER PIC X(33) VALUE "KSD".
05 FILLER PIC X(33) VALUE "VSEARCH".
05 FILLER PIC X(33) VALUE "ISECONDS-FROM-FORMATTED-TIME".
05 FILLER PIC X(33) VALUE "ISECONDS-PAST-MIDNIGHT".
05 FILLER PIC X(33) VALUE "KSECTION".
05 FILLER PIC X(33) VALUE " SECURE".
05 FILLER PIC X(33) VALUE " SECURITY".
05 FILLER PIC X(33) VALUE " SEGMENT-LIMIT".
05 FILLER PIC X(33) VALUE " SELECT".
05 FILLER PIC X(33) VALUE " SELF".
05 FILLER PIC X(33) VALUE " SENTENCE".
05 FILLER PIC X(33) VALUE " SEPARATE".
05 FILLER PIC X(33) VALUE " SEQUENCE".
05 FILLER PIC X(33) VALUE " SEQUENTIAL".
05 FILLER PIC X(33) VALUE "VSET".
05 FILLER PIC X(33) VALUE " SHARING".
05 FILLER PIC X(33) VALUE "ISIGN".
05 FILLER PIC X(33) VALUE " SIGNED".
05 FILLER PIC X(33) VALUE " SIGNED-INT".
05 FILLER PIC X(33) VALUE " SIGNED-LONG".
05 FILLER PIC X(33) VALUE " SIGNED-SHORT".
05 FILLER PIC X(33) VALUE "ISIN".
05 FILLER PIC X(33) VALUE " SIZE".
05 FILLER PIC X(33) VALUE "VSORT".
05 FILLER PIC X(33) VALUE " SORT-MERGE".
05 FILLER PIC X(33) VALUE "ISORT-RETURN".
05 FILLER PIC X(33) VALUE " SOURCE".
05 FILLER PIC X(33) VALUE " SOURCE-COMPUTER".
05 FILLER PIC X(33) VALUE " SOURCES".
05 FILLER PIC X(33) VALUE " SPACE".
05 FILLER PIC X(33) VALUE " SPACE-FILL".
05 FILLER PIC X(33) VALUE " SPACES".
05 FILLER PIC X(33) VALUE " SPECIAL-NAMES".
05 FILLER PIC X(33) VALUE "ISQRT".
05 FILLER PIC X(33) VALUE " STANDARD".
05 FILLER PIC X(33) VALUE " STANDARD-1".
05 FILLER PIC X(33) VALUE " STANDARD-2".
05 FILLER PIC X(33) VALUE "ISTANDARD-DEVIATION".
05 FILLER PIC X(33) VALUE "VSTART".
05 FILLER PIC X(33) VALUE " STATUS".
05 FILLER PIC X(33) VALUE "VSTOP".
05 FILLER PIC X(33) VALUE "ISTORED-CHAR-LENGTH".
05 FILLER PIC X(33) VALUE "VSTRING".
05 FILLER PIC X(33) VALUE "ISUBSTITUTE".
05 FILLER PIC X(33) VALUE "ISUBSTITUTE-CASE".
05 FILLER PIC X(33) VALUE "VSUBTRACT".
05 FILLER PIC X(33) VALUE "ISUM".
05 FILLER PIC X(33) VALUE " SUPER".
05 FILLER PIC X(33) VALUE "VSUPPRESS".
05 FILLER PIC X(33) VALUE "MSWITCH-1".
05 FILLER PIC X(33) VALUE "MSWITCH-2".
05 FILLER PIC X(33) VALUE "MSWITCH-3".
05 FILLER PIC X(33) VALUE "MSWITCH-4".
05 FILLER PIC X(33) VALUE "MSWITCH-5".
05 FILLER PIC X(33) VALUE "MSWITCH-6".
05 FILLER PIC X(33) VALUE "MSWITCH-7".
05 FILLER PIC X(33) VALUE "MSWITCH-8".
05 FILLER PIC X(33) VALUE " SYMBOLIC".
05 FILLER PIC X(33) VALUE " SYNC".
05 FILLER PIC X(33) VALUE " SYNCHRONIZED".
05 FILLER PIC X(33) VALUE "MSYSERR".
05 FILLER PIC X(33) VALUE "MSYSIN".
05 FILLER PIC X(33) VALUE "MSYSIPT".
05 FILLER PIC X(33) VALUE "MSYSLIST".
05 FILLER PIC X(33) VALUE "MSYSLST".
05 FILLER PIC X(33) VALUE "MSYSOUT".
05 FILLER PIC X(33) VALUE " SYSTEM-DEFAULT".
05 FILLER PIC X(33) VALUE " TABLE".
05 FILLER PIC X(33) VALUE "KTALLYING".
05 FILLER PIC X(33) VALUE "ITAN".
05 FILLER PIC X(33) VALUE " TAPE".
05 FILLER PIC X(33) VALUE "VTERMINATE".
05 FILLER PIC X(33) VALUE " TEST".
05 FILLER PIC X(33) VALUE "ITEST-DATE-YYYYMMDD".
05 FILLER PIC X(33) VALUE "ITEST-DAY-YYYYDDD".
05 FILLER PIC X(33) VALUE " THAN".
05 FILLER PIC X(33) VALUE " THEN".
05 FILLER PIC X(33) VALUE " THROUGH".
05 FILLER PIC X(33) VALUE " THRU".
05 FILLER PIC X(33) VALUE " TIME".
83
OpenCOBOL 1.1 Programmers Guide
Sample Programs
06FEB2009 Version
Page 8-34
05 FILLER PIC X(33) VALUE " TIMES".
05 FILLER PIC X(33) VALUE "KTO".
05 FILLER PIC X(33) VALUE " TOP".
05 FILLER PIC X(33) VALUE " TRAILING".
05 FILLER PIC X(33) VALUE " TRAILING-SIGN".
05 FILLER PIC X(33) VALUE "VTRANSFORM".
05 FILLER PIC X(33) VALUE "ITRIM".
05 FILLER PIC X(33) VALUE " TRUE".
05 FILLER PIC X(33) VALUE " TYPE".
05 FILLER PIC X(33) VALUE " TYPEDEF".
05 FILLER PIC X(33) VALUE " UNDERLINE".
05 FILLER PIC X(33) VALUE " UNIT".
05 FILLER PIC X(33) VALUE " UNIVERSAL".
05 FILLER PIC X(33) VALUE "VUNLOCK".
05 FILLER PIC X(33) VALUE " UNSIGNED".
05 FILLER PIC X(33) VALUE " UNSIGNED-INT".
05 FILLER PIC X(33) VALUE " UNSIGNED-LONG".
05 FILLER PIC X(33) VALUE " UNSIGNED-SHORT".
05 FILLER PIC X(33) VALUE "VUNSTRING".
05 FILLER PIC X(33) VALUE " UNTIL".
05 FILLER PIC X(33) VALUE "KUP".
05 FILLER PIC X(33) VALUE " UPDATE".
05 FILLER PIC X(33) VALUE " UPON".
05 FILLER PIC X(33) VALUE " UPPER".
05 FILLER PIC X(33) VALUE "IUPPER-CASE".
05 FILLER PIC X(33) VALUE " USAGE".
05 FILLER PIC X(33) VALUE "VUSE".
05 FILLER PIC X(33) VALUE " USER-DEFAULT".
05 FILLER PIC X(33) VALUE "KUSING".
05 FILLER PIC X(33) VALUE " VAL-STATUS".
05 FILLER PIC X(33) VALUE " VALID".
05 FILLER PIC X(33) VALUE " VALIDATE".
05 FILLER PIC X(33) VALUE " VALIDATE-STATUS".
05 FILLER PIC X(33) VALUE " VALUE".
05 FILLER PIC X(33) VALUE " VALUES".
05 FILLER PIC X(33) VALUE "IVARIANCE".
05 FILLER PIC X(33) VALUE "KVARYING".
05 FILLER PIC X(33) VALUE " WAIT".
05 FILLER PIC X(33) VALUE "VWHEN".
05 FILLER PIC X(33) VALUE "IWHEN-COMPILED".
05 FILLER PIC X(33) VALUE " WITH".
05 FILLER PIC X(33) VALUE " WORDS".
05 FILLER PIC X(33) VALUE "KWORKING-STORAGE".
05 FILLER PIC X(33) VALUE "VWRITE".
05 FILLER PIC X(33) VALUE "IYEAR-TO-YYYY".
05 FILLER PIC X(33) VALUE " YYYYDDD".
05 FILLER PIC X(33) VALUE " YYYYMMDD".
05 FILLER PIC X(33) VALUE " ZERO".
05 FILLER PIC X(33) VALUE " ZERO-FILL".
05 FILLER PIC X(33) VALUE " ZEROES".
05 FILLER PIC X(33) VALUE " ZEROS".
01 Reserved-Word-Table REDEFINES Reserved-Words.
05 Reserved-Word OCCURS 591 TIMES
ASCENDING KEY RW-Word
INDEXED RW-Idx.
10 RW-Type PIC X(1).
10 RW-Word PIC X(32).
01 Saved-Section PIC X(15).
01 Search-Token PIC X(32).
01 Source-Line-No PIC 9(6).
01 Src-Ptr USAGE BINARY-LONG.
01 Syntax-Parsing-Items.
05 SPI-Current-Char PIC X(1).
88 Current-Char-Is-Punct VALUE "=", "(", ")", "*", "/",
"&", ";", ",", "<", ">",
":".
88 Current-Char-Is-Quote VALUE '"', "'".
88 Current-Char-Is-X VALUE "x", "X".
88 Current-Char-Is-Z VALUE "z", "Z".
05 SPI-Current-Division PIC X(1).
88 In-IDENTIFICATION-DIVISION VALUE "I", "?".
88 In-ENVIRONMENT-DIVISION VALUE "E".
88 In-DATA-DIVISION VALUE "D".
88 In-PROCEDURE-DIVISION VALUE "P".
05 SPI-Current-Line-No PIC 9(6).
05 SPI-Current-Program-ID.
10 FILLER PIC X(12).
10 SPI-CP-13-15 PIC X(3).
05 SPI-Current-Section.
85
OpenCOBOL 1.1 Programmers Guide
Sample Programs
06FEB2009 Version
Page 8-35
10 SPI-CS-1 PIC X(1).
10 SPI-CS-2-14.
15 FILLER PIC X(10).
15 SPI-CS-11-14 PIC X(3).
10 SPI-CS-15 PIC X(1).
05 SPI-Current-Token PIC X(32).
05 SPI-Current-Token-UC PIC X(32).
05 SPI-Current-Verb PIC X(12).
05 SPI-Next-Char PIC X(1).
88 Next-Char-Is-Quote VALUE '"', "'".
05 SPI-Prior-Token PIC X(32).
05 SPI-Token-Type PIC X(1).
88 Token-Is-EOF VALUE HIGH-VALUES.
88 Token-Is-Identifier VALUE "I".
88 Token-Is-Key-Word VALUE "K", "V".
88 Token-Is-Literal-Alpha VALUE "L".
88 Token-Is-Literal-Number VALUE "N".
88 Token-Is-Verb VALUE "V".
01 Tally USAGE BINARY-LONG.
01 Todays-Date PIC 9(8).
LINKAGE SECTION.
01 Produce-Source-Listing PIC X(1).
01 Produce-Xref-Listing PIC X(1).
01 Src-Filename PIC X(256).
/
PROCEDURE DIVISION USING Produce-Source-Listing
Produce-Xref-Listing
Src-Filename.
000-Main SECTION.
001-Init.
PERFORM 100-Initialization
PERFORM 200-Execute-cobc
OPEN OUTPUT Report-File
IF Produce-Source-Listing NOT = SPACE
PERFORM 500-Produce-Source-Listing
END-IF
IF Produce-Xref-Listing NOT = SPACE
SORT Sort-File
ASCENDING KEY SR-Prog-ID
SR-Token-UC
SR-Line-No-Ref
INPUT PROCEDURE 300-Tokenize-Source
OUTPUT PROCEDURE 400-Produce-Xref-Listing
END-IF
CLOSE Report-File
GOBACK
.
/
100-Initialization SECTION.
*****************************************************************
** Perform all program-wide initialization operations **
*****************************************************************
101-Establish-Working-Env.
MOVE TRIM(Src-Filename,Leading) TO Src-Filename
ACCEPT Env-TEMP
FROM ENVIRONMENT "TEMP"
END-ACCEPT
ACCEPT Lines-Per-Page-ENV
FROM ENVIRONMENT "OCXREF_LINES"
END-ACCEPT
INSPECT Src-Filename REPLACING ALL "\" BY "/"
INSPECT Env-TEMP REPLACING ALL "\" BY "/"
MOVE Src-Filename TO Program-Path
MOVE Program-Path TO Heading-2
CALL "C$JUSTIFY"
USING Heading-2, "Right"
END-CALL
MOVE LENGTH(TRIM(Src-Filename,Trailing)) TO I
MOVE 0 TO J
PERFORM UNTIL Src-Filename(I:1) = '/'
OR I = 0
SUBTRACT 1 FROM I
ADD 1 TO J
END-PERFORM
UNSTRING Src-Filename((I + 1):J) DELIMITED BY "."
INTO Filename, Dummy
END-UNSTRING
STRING TRIM(Env-TEMP,Trailing)
"/"
TRIM(Filename,Trailing)
".i"
87
OpenCOBOL 1.1 Programmers Guide
Sample Programs
06FEB2009 Version
Page 8-36
DELIMITED SIZE
INTO Expanded-Src-Filename
END-STRING
STRING Program-Path(1:I)
TRIM(Filename,Trailing)
".lst"
DELIMITED SIZE
INTO Report-Filename
END-STRING
IF Lines-Per-Page-ENV NOT = SPACES
MOVE NUMVAL(Lines-Per-Page-ENV) TO Lines-Per-Page
ELSE
MOVE 60 TO Lines-Per-Page
END-IF
ACCEPT Todays-Date
FROM DATE YYYYMMDD
END-ACCEPT
MOVE Todays-Date TO H1X-Date
H1S-Date
MOVE "????????????..." TO SPI-Current-Program-ID
MOVE SPACES TO SPI-Current-Verb
Held-Reference
MOVE "Y" TO F-First-Record
.
/
200-Execute-cobc SECTION.
201-Build-Cmd.
STRING "cobc -E "
TRIM(Program-Path, Trailing)
" > "
TRIM(Expanded-Src-Filename,Trailing)
DELIMITED SIZE
INTO Cmd
END-STRING
CALL "SYSTEM"
USING Cmd
END-CALL
IF RETURN-CODE NOT = 0
DISPLAY
"Cross-reference terminated by previous errors"
UPON SYSERR
END-DISPLAY
GOBACK
END-IF
.
209-Exit.
EXIT
.
/
300-Tokenize-Source SECTION.
301-Driver.
OPEN INPUT Expand-Code
MOVE SPACES TO Expand-Code-Rec
MOVE 256 TO Src-Ptr
MOVE 0 TO Num-UserNames
SPI-Current-Line-No
MOVE "?" TO SPI-Current-Division
PERFORM FOREVER
PERFORM 310-Get-Token
IF Token-Is-EOF
EXIT PERFORM
END-IF
MOVE UPPER-CASE(SPI-Current-Token)
TO SPI-Current-Token-UC
IF Token-Is-Verb
MOVE SPI-Current-Token-UC TO SPI-Current-Verb
SPI-Prior-Token
IF Held-Reference NOT = SPACES
MOVE Held-Reference TO Sort-Rec
MOVE SPACES TO Held-Reference
RELEASE Sort-Rec
END-IF
END-IF
EVALUATE TRUE
WHEN In-IDENTIFICATION-DIVISION
PERFORM 320-IDENTIFICATION-DIVISION
WHEN In-ENVIRONMENT-DIVISION
PERFORM 330-ENVIRONMENT-DIVISION
WHEN In-DATA-DIVISION
PERFORM 340-DATA-DIVISION
WHEN In-PROCEDURE-DIVISION
PERFORM 350-PROCEDURE-DIVISION
END-EVALUATE
Documents you may be interested
Documents you may be interested