The vendor is fixing the preprocessor. (That would be me.)
Charles Frank Swarbrick <[email protected]> wrote: >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 ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
