Correct. Where will you go from here? Frank
>________________________________ > From: Charles Mills <[email protected]> >To: [email protected] >Sent: Friday, August 3, 2012 11:12 AM >Subject: Re: Is this valid COBOL syntax? > >Frank (and also now John M.) - > >You've got it. When John M. said his compiler was generating an error I >started running some experiments. It took about twenty experiments, but here >is the answer. > >The following program compiles cleanly (except for a sequence error), but if >you remove the DATE-COMPILED line it does not. For the sample below, lines >20 through 33 are part of the DATE-COMPILED paragraph. It is deceptive >source code. What appears to be part of the REMARKS paragraph or something >like that is in fact part of the DATE-COMPILED paragraph. > >00002 IDENTIFICATION DIVISION. >00013 PROGRAM-ID. FOO. >00017 DATE-COMPILED. >00020 *REMARKS. > now is the time for all go >00021 '************************* >00022 '* blah blah blah >00022 '* blah blah blah >00033 FOO. > DATA DIVISION. > WORKING-STORAGE SECTION. > 01 TRANS-NAME PIC X(20). > PROCEDURE DIVISION. > MAIN-PROCEDURE. > STOP RUN. >Charles > >-----Original Message----- >From: IBM Mainframe Discussion List [mailto:[email protected]] On >Behalf Of Frank Swarbrick >Sent: Friday, August 03, 2012 9:53 AM >To: [email protected] >Subject: Re: Is this valid COBOL syntax? > >Here is what happened. >The program was written in pre-COBOL II (COBOL 85) syntax. At that time the >REMARKS paragraph valid (I'm guessing as an IBM extension), and everything >following it (until the next valid phrase) was treated as, well, remarks >(a.k.a. comments). So it used to look something like this: > > IDENTIFICATION DIVISION. > PROGRAM-ID. MYPGM. > > AUTHOR. THE AUTHOR OF THIS PROGRAM. > REMARKS. > '******************* ************' > '* VARIOUS COMMENT-LIKE TEXT *' > '* VARIOUS COMMENT-LIKE TEXT *' > >When someone attempted to compile it under COBOL II they got an error on the >REMARKS pargraph, as it was no longer valid. Some the programmer put the >comment indicator asterisk in front of REMARKS and tried again. Low and >behold, it worked! > > >Why did it work? Because of the AUTHOR paragraph. (Or perhaps some other >paragraph; I'm just guessing AUTHOR.) The IDENTIFICATION DIVISION is >defined as follows: > > >____________________________________________________________________________ >______________________ > >| > | > | >>__ _IDENTIFICATION_ __DIVISION.__PROGRAM-ID__ ___ >__program-name_____________________________> | > | |_ID_____________| >|_._| | > >| > | > | >__ ______________________________________________ __ ___ >_____________________________________> | > | |_ ____ __ _RECURSIVE___________ __ _________ _| >|_._| | > | |_IS_| |_COMMON__ _________ _| >|_PROGRAM_| | > | | |_INITIAL_| >| | > | |_INITIAL__ ________ >_| | > | >|_COMMON_| | > >| > | > | >__ ______________________________________ __ >____________________________________________ ____> | > | |_AUTHOR__ ___ __ ___________________ _| |_INSTALLATION__ ___ __ >___________________ _| | > | |_._| | <_______________ | |_._| | ><_______________ | | > | |___comment-entry_|_| >|___comment-entry_|_| | > >| > | > | >__ ____________________________________________ >______________________________________________> | > | |_DATE-WRITTEN__ ___ __ ___________________ >_| | > | |_._| | <_______________ >| | > | >|___comment-entry_|_| | > >| > | > | >__ _______________________________________ __ >________________________________________ ______>< | > | |_DATE-COMPILED.__ ___________________ _| |_SECURITY__ ___ __ >___________________ _| | > | | <_______________ | |_._| | ><_______________ | | > | |___comment-entry_|_| >|___comment-entry_|_| | > >| > | > >|___________________________________________________________________________ >_______________________| > > > >As you can see, each of the optional paragraphs (AUTHOR, INSTALLATION, >DATE-WRITTEN, DATE-COMPILED, and SECURITY) may be followed by multiple >comment-entries. So what had been "remarks" comment entries are now comment >entries under whatever "paragraph name" immediately preceeds it. > >So technically it is valid COBOL, at least according to the Enterprise COBOL >standard. So technically your pre-processor needs to accept it. Will they >fix it to accept it? Umm, good luck! > >Your other option is to place the comment asterisks before each >"comment-entry". > >Note that if the program had not had any of the other optional ID DIVISION >paragraphs present, simply commenting out REMARKS would not have worked. > >It is perhaps worth noting the following, from the Enterprise COBOL 4.2 >Reference manual... > >"The following are language elements that Standard COBOL 85 categorized as >obsolete: > * AUTHOR paragraph > * Comment entry > * DATE-COMPILED paragraph > * DATE-WRITTEN paragraph > * INSTALLATION paragraph > * SECURITY paragraph" > > >---------------------------------------------------------------------- >For IBM-MAIN subscribe / signoff / archive access instructions, >send email to [email protected] with the message: INFO IBM-MAIN > > > ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
