|
From: | Ron Norman |
Subject: | Re: [Bug-GnuCOBOL] COPY STATEMENT Differences with IBM Mainframe |
Date: | Mon, 9 Jul 2018 06:38:05 -0400 |
I stumbled on some mainframe code that is using COPY statements on the same line as the 01 level tag.I have found four different ways this code does this, but only one works on GnuCOBOL.In the code below, only the 4th one will compile on GnuCOBOL.I don't have access to a IBM mainframe to tell me how this would react on the MF.How is this working on the mainframe? Assuming it is.address@hidden copy1]$ cat *cblIDENTIFICATION DIVISION.PROGRAM-ID. foo.ENVIRONMENT DIVISION.CONFIGURATION SECTION.SOURCE-COMPUTER.pi3 WiTH DEBUGGING MODE .DATA DIVISION.WORKING-STORAGE SECTION.01 ws-vars1 COPY bar1.01 ws-vars2. COPY bar2.01 ws-vars3 COPY bar3REPLACING ==01 cp-vars3.== BY ====.01 ws-vars4. COPY bar4REPLACING ==01 cp-vars4.== BY ====.PROCEDURE DIVISION.DISPLAY "ws-vars1 LENGTH = " LENGTH OF ws-vars1.DISPLAY "ws-vars2 LENGTH = " LENGTH OF ws-vars2.DISPLAY "cp-vars1 LENGTH = " LENGTH OF cp-vars1.DISPLAY "cp-vars2 LENGTH = " LENGTH OF cp-vars2.DISPLAY "ws-vars3 LENGTH = " LENGTH OF ws-vars3.DISPLAY "ws-vars4 LENGTH = " LENGTH OF ws-vars4.GOBACK.END PROGRAM foo.* ------------------------------------------------------------ -- address@hidden copy1]$ cat foo.cblIDENTIFICATION DIVISION.PROGRAM-ID. foo.ENVIRONMENT DIVISION.CONFIGURATION SECTION.SOURCE-COMPUTER.pi3 WiTH DEBUGGING MODE .DATA DIVISION.WORKING-STORAGE SECTION.01 ws-vars1 COPY bar1.01 ws-vars2. COPY bar2.01 ws-vars3 COPY bar3REPLACING ==01 cp-vars3.== BY ====.01 ws-vars4. COPY bar4REPLACING ==01 cp-vars4.== BY ====.PROCEDURE DIVISION.DISPLAY "ws-vars1 LENGTH = " LENGTH OF ws-vars1.DISPLAY "ws-vars2 LENGTH = " LENGTH OF ws-vars2.DISPLAY "cp-vars1 LENGTH = " LENGTH OF cp-vars1.DISPLAY "cp-vars2 LENGTH = " LENGTH OF cp-vars2.DISPLAY "ws-vars3 LENGTH = " LENGTH OF ws-vars3.DISPLAY "ws-vars4 LENGTH = " LENGTH OF ws-vars4.GOBACK.END PROGRAM foo.* ------------------------------------------------------------ -- address@hidden copy1]$ cat *.cpy01 cp-vars1.05 cp-var1 PIC X(16).01 cp-vars2.05 cp-var2 PIC X(16).01 cp-vars3.05 cp-var3 PIC X(16).01 cp-vars4.05 cp-var4 PIC X(16).address@hidden copy1]$ cat *.bashcobc foo.cblcobcrun foo
[Prev in Thread] | Current Thread | [Next in Thread] |