HP3000-L Archives

August 2001, Week 1

HP3000-L@RAVEN.UTC.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Tom Emerson <[log in to unmask]>
Reply To:
Tom Emerson <[log in to unmask]>
Date:
Mon, 6 Aug 2001 18:24:31 -0400
Content-Type:
text/plain
Parts/Attachments:
text/plain (92 lines)
On Mon, 6 Aug 2001 15:41:49 -0600, [log in to unmask] wrote:

>I am using COBOL macro to perform call to IMAGE database in my COBOL
>program. All these macros are in a copybook and all needed macros are
>included in program. But when I compile my program it gives following
>error
> 01760          662000 %BASE DISTR
> 01760 DEFINES  662000  REPLACE ==`== BY =='==
> 01761          001800                            ==(DB)== BY   DISTR
> 01761          663000 %DBOPEN.
> 01761          663000  COPY DBOPEN   OF CL  .
> 01761          664000
[...]
> 01761          671000 %DBUNLOCK.
> 01761          671000  COPY DBUNLOCK OF CL  .
> 01761          672000
> 01761          673000 %DBCLOSE.
> 01761          673000  COPY DBCLOSE  OF CL  .
> 01761                 COPY CSICALLS.
> 01761                 COPY DBABORT  OF CL.
> 01761
>674000**********************************************************
>
>PAGE 0002/COBTEXT  HBDSMNRS        COBOL ERRORS and WARNINGS
>COBOL ERRORS:
>LINE #   SEQ #  COL  ERROR  SEV   TEXT OF MESSAGE
>------  ------  ---  -----  ---   ---------------
> 01761          08    496    D    EARLY END OF FILE ON FILE COBTEXT , END
>                                  OF FILE  (FSERR 0).
> 01761  001800  38    289    Q    INVALID TOKEN IN COPY...REPLACING OR
>                                  REPLACE CLAUSE.

It might be helpful to see the original copylib/macro items rather than the
compiled output -- however, I noticed that EVERY line of the (I presume)
macro expansion is listed as line "01761".  As a "for instance", here is a
macro I'm using in some of my code:

  358.1   $DEFINE %PRINTLINE=
  358.2        MOVE SPACES TO REPORT-LINE
  358.3        MOVE !1 TO REPORT-TAG
  358.4        STRING !2
  358.5               DELIMITED BY SIZE
  358.6               INTO REPORT-DATA
  358.7        WRITE REPORT-BUFFER FROM REPORT-LINE
  358.8        #
  358.9   $DEFINE %BLANKLINE=
  359          MOVE SPACES TO REPORT-LINE
  359.1        WRITE REPORT-BUFFER FROM REPORT-LINE
  359.2        #
  359.3
  359.4        %BLANKLINE
  359.5        %PRINTLINE("MDI "#,        CUST-MAST-INFACT-NO#)

The "expanded" code appears like this in the compilation listing:
 07254          373900$DEFINE %PRINTLINE=
 07254          374000     MOVE SPACES TO REPORT-LINE
 07254          374100     MOVE !1 TO REPORT-TAG
 07254          374200     STRING !2
 07254          374300            DELIMITED BY SIZE
 07254          374400            INTO REPORT-DATA
 07254          374500     WRITE REPORT-BUFFER FROM REPORT-LINE
 07254          374600     #
 07254          374700$DEFINE %BLANKLINE=
 07254          374800     MOVE SPACES TO REPORT-LINE
 07254          374900     WRITE REPORT-BUFFER FROM REPORT-LINE
 07254          375000     #
 07254          375100
 07255          375200     %BLANKLINE
 07255          374800     MOVE SPACES TO REPORT-LINE
 07256          374900     WRITE REPORT-BUFFER FROM REPORT-LINE
 07257          375000
 07258          375300     %PRINTLINE("MDI "#,        CUST-MAST-INFACT-NO#)
 07258          374000     MOVE SPACES TO REPORT-LINE
 07259          374100     MOVE "MDI " TO REPORT-TAG
 07260          374200     STRING         CUST-MAST-INFACT-NO
 07261          374300            DELIMITED BY SIZE
 07262          374400            INTO REPORT-DATA
 07263          374500     WRITE REPORT-BUFFER FROM REPORT-LINE
 07264          374600

Note that the compiler listing shows the "orginal" line of code followed by
the "expanded" code -- your listing above looks like only the start of a
macro definition, not a completed/replaced listing.

Note also the "special characters" needed to define a COBOL MACRO: $, %, =,
and most importantly: #.  From your listing, I don't see the
terminating "#" character, which may be what the compiler is complaining
about...

* To join/leave the list, search archives, change list settings, *
* etc., please visit http://raven.utc.edu/archives/hp3000-l.html *

ATOM RSS1 RSS2