[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[open-cobol-list] question from a new user
From: |
David Korn |
Subject: |
[open-cobol-list] question from a new user |
Date: |
Mon Mar 31 11:05:19 2003 |
Subject: question from a new user
--------
I just downloaded open cobol to evaluate whether it would be suitable
for some work that I am doing. I am trying to convert some
cobol programs to C. I have very little knowledge of Cobol.
I compiled open-cobol from the open-cobol-0.12 source.
However, with the first program I tried to convert, open cobol
is generating an error and then generating a core dump.
I have included the program below. Here is the output that I
am getting:
$ cobc -I include -C prog.cob
prog.cob:1: warning: source line over column 72
prog.cob:1: warning: specify source format explicitly
prog.cob:2: warning: source line over column 72
prog.cob:3: warning: source line over column 72
prog.cob:3: warning: source line over column 72
prog.cob:3: warning: more warnings inhibited
prog.cob:12: error: `UT-S-VMUR107A' undefined
Memory fault(coredump)
The error is coming from an ASSIGN statement. Based on the COBOL
manual that I have, this would appear to be correct syntax.
Can anyone tell me why this program doesn't work and how it can
be changed so that the compiler can generate C code?
Thanks.
==========================prog.cob================================
000100 IDENTIFICATION DIVISION. 00000010
000200 PROGRAM-ID. VMURO107. 00000020
000300 AUTHOR. DAVID KORN. 00000030
000400 DATE-WRITTEN. JANUARY 2003. 00000040
000500 DATE-COMPILED. 00000050
000600 00000060
002300/ 00000230
002400 ENVIRONMENT DIVISION. 00000240
002500 INPUT-OUTPUT SECTION. 00000250
002600 00000260
002700 FILE-CONTROL. 00000270
002800 SELECT CRIT-ERROR-FILE ASSIGN UT-S-VMUR107A 00000280
002900 STATUS IS WK-CRIT-ERROR-STATUS. 00000290
003000 00000300
003100 DATA DIVISION. 00000310
003200 FILE SECTION. 00000320
003300 00000330
003400 FD CRIT-ERROR-FILE 00000340
003500 LABEL RECORDS STANDARD 00000350
003600 BLOCK 0 RECORDS 00000360
003700 RECORD 665 CHARACTERS 00000370
003900 DATA RECORD CRIT-ERROR-RECORD. 00000390
004000 00000400
004100 01 CRIT-ERROR-RECORD. 00000410
004200 05 CRIT-ERROR-CODE PIC X(04). 00000420
004300 05 FILLER PIC X(01) VALUE SPACES. 00000430
004400 05 CRIT-ERROR-POSITION PIC X(09). 00000440
004500 05 FILLER PIC X(01) VALUE SPACES. 00000450
004600 05 CRIT-ERROR-REC PIC X(650). 00000460
004700/ 00000470
004800 WORKING-STORAGE SECTION. 00000480
004900 00000490
005000 01 WK-STATUS. 00000500
005100 05 WK-CRIT-ERROR-STATUS PIC X(02). 00000510
005200 88 GOOD-CRIT-ERROR-STATUS VALUE '00'. 00000520
005300/ 00000530
005400 LINKAGE SECTION. 00000540
005500 00000550
005600 01 LK-USAGE-RECORD PIC X(650). 00000560
005700 01 LK-USAGE-READ-CNT PIC 9(09). 00000570
005800 01 LK-CRIT-ERR-FIRST-TIME-IND PIC X(01). 00000580
005900 01 LK-RETURN-CODE PIC X(02). 00000590
006000 01 LK-ERROR-CODE PIC X(04). 00000600
006100/ 00000610
006600 00000660
006700 PROCEDURE DIVISION USING LK-USAGE-RECORD 00000670
006800 LK-USAGE-READ-CNT 00000680
006900 LK-CRIT-ERR-FIRST-TIME-IND 00000690
007000 LK-RETURN-CODE 00000700
007100 LK-ERROR-CODE. 00000710
007200 00000720
007300 OPEN-WRITE-SECTION. 00000730
007400 IF LK-CRIT-ERR-FIRST-TIME-IND = 'Y' 00000740
007500 OPEN OUTPUT CRIT-ERROR-FILE 00000750
007600 IF NOT GOOD-CRIT-ERROR-STATUS 00000760
007700 DISPLAY 'VMURO107: OPEN FILE ERROR : STATUS ' 00000770
007800 WK-CRIT-ERROR-STATUS 00000780
007900 MOVE '50' TO LK-RETURN-CODE 00000790
008000 GO TO ENDJOB 00000800
008100 END-IF 00000810
008200 MOVE 'N' TO LK-CRIT-ERR-FIRST-TIME-IND 00000820
008300 END-IF. 00000830
008400 MOVE LK-USAGE-READ-CNT TO CRIT-ERROR-POSITION. 00000840
008500 MOVE LK-ERROR-CODE TO CRIT-ERROR-CODE. 00000850
008600 MOVE LK-USAGE-RECORD TO CRIT-ERROR-REC. 00000860
008700 WRITE CRIT-ERROR-RECORD. 00000870
008800 IF NOT GOOD-CRIT-ERROR-STATUS 00000880
008900 DISPLAY 'VMURO107: WRITE FILE ERROR : STATUS ' 00000890
009000 WK-CRIT-ERROR-STATUS 00000900
009100 MOVE '80' TO LK-RETURN-CODE 00000910
009200 GO TO ENDJOB 00000920
009300 END-IF. 00000930
009400 ENDJOB. 00000940
009500 EXIT PROGRAM. 00000950
009600 00000960
009700 ENTRY 'CLCRTERR' USING LK-RETURN-CODE. 00000970
009800 CLOSE CRIT-ERROR-FILE. 00000980
009900 IF NOT GOOD-CRIT-ERROR-STATUS 00000990
010000 DISPLAY 'VMURO107: CLOSE FILE ERROR : STATUS ' 00001000
010100 WK-CRIT-ERROR-STATUS 00001010
010200 MOVE '90' TO LK-RETURN-CODE 00001020
010300 ELSE 00001030
010400 NEXT SENTENCE 00001040
010500 END-IF. 00001050
010600 GOBACK. 00001060
010700/ 00001070
013000/ 00001300
015200/ 00001520
016500/ 00001650
017400/ 00001740
018900/ 00001890
==========================end prog.cob================================
David Korn
research!dgk
address@hidden
- [open-cobol-list] question from a new user,
David Korn <=