z/OS ISPF Software Configuration and Library Manager Guide and Reference
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Passing the source to the compiler

z/OS ISPF Software Configuration and Library Manager Guide and Reference
SC19-3625-00

You must next make one change to the macros that define how to invoke the Finnoga 4 compiler. The source to be compiled no longer comes directly from the SCLM-controlled source libraries. Instead, you want SCLM to take the preprocessed source that PUPP writes to ddname SYSOUT and pass it to the Finnoga 4 compiler. This requires a change to the FLMALLOC macro that defines the ddname that gets put into the SYSIN position in the ddname substitution list for the Finnoga 4 compiler. The new macro is illustrated as follows:

*
*   -- (5) SOURCE
*
      FLMALLOC IOTYPE=U,DDNAME=SYSOUT

You use a different IOTYPE value (IOTYPE=U) to indicate that the ddname to be placed in the ddname substitution list has already been allocated in a previous build step. In this case, DDNAME=SYSOUT tells SCLM to place the name SYSOUT in position 5 of the ddname substitution list and go on to the next ddname. When the Finnoga 4 compiler runs, it reads the source from ddname SYSOUT.

The new language definition is shown in Figure 1. Note that the new language has been specified on the FLMLANGL macro.

Figure 1. Finnoga/PUPP Language Definition (Part 1 of 2)
**********************************************************
*  FINNOGA 4 LANGUAGE DEFINITION
**********************************************************
*
         FLMLANGL LANG=FINPUPP,VERSION=FINN4
*
**********************************************************
         TYPES TO SEARCH FOR INCLUDES
**********************************************************
*
         FLMINCLS TYPES=(INCLUDE,@@FLMTYP)
*
**********************************************************

*  PARSE TRANSLATOR DEFINITION
**********************************************************
*
         FLMTRNSL   CALLNAM='FINNOGA PARSER',                          C
               FUNCTN=PARSE,                                           C
               COMPILE=FINPARSE,                                       C
               DSNAME=SCLM.PROJDEFS.LOAD,                              C
               PORDER=1,                                               C
               OPTIONS=(@@FLMSIZ,@@FLMSTP,@@FLMLIS)
*
*   -- SOURCE --
*
           FLMALLOC  IOTYPE=A,DDNAME=SOURCE
            FLMCPYLB  @@FLMDSN(@@FLMMBR)
*
**********************************************************
*  BUILD TRANSLATOR DEFINITION
**********************************************************
*
* PREPROCESSOR STEP
*
         FLMTRNSL   CALLNAM='PANDA U PREP',                            C
               FUNCTN=BUILD,                                           C
               COMPILE=PANDA01,                                        C
               GOODRC=0,                                               C
               PORDER=1,                                               C
               OPTIONS='NOTRACE'
*
*   -- SOURCE
*
           FLMALLOC IOTYPE=S,KEYREF=SINC,DDNAME=SYSIN
*
*   -- PREPROCESSED SOURCE
*
           FLMALLOC IOTYPE=W,RECFM=FB,LRECL=80,RECNUM=5000,            C
               DDNAME=SYSOUT
*
*   -- LISTING
*
           FLMALLOC  IOTYPE=O,KEYREF=OUT1,RECFM=VBA,LRECL=125,         C
               RECNUM=5000,PRINT=Y,DFLTTYP=PUPLIST,DDNAME=SYSPRINT
*
* COMPILE STEP
*
         FLMTRNSL   CALLNAM='FINNOGA 4',                               C
               FUNCTN=BUILD,                                           C
               COMPILE=FNGAA40,                                        C
               GOODRC=0,                                               C
               PORDER=3,                                               C
               OPTIONS='SOURCE,NOMACRO,OBJ(@FLMMBR)',                  C
               PARMKWD=PARM1
Figure 2. Finnoga/PUPP Language Definition (Part 2 of 2)
*
*   -- (1) OBJECT
*
           FLMALLOC IOTYPE=P,KEYREF=OBJ,DFLTTYP=OBJ,RECFM=FB,          C
               LRECL=80,RECNUM=5000
*
*   -- (2) NOT USED
*
           FLMALLOC IOTYPE=N
*
*   -- (3) NOT USED
*
           FLMALLOC IOTYPE=N
*
*   -- (4) INCLUDE LIBRARIES
*
           FLMALLOC IOTYPE=I,KEYREF=SINC
*
*   -- (5) SOURCE
*
           FLMALLOC IOTYPE=U,DDNAME=SYSOUT
*
*   -- (6) LISTING
*
           FLMALLOC  IOTYPE=O,KEYREF=LIST,RECFM=VBA,LRECL=125,         C
               RECNUM=5000,PRINT=Y,DFLTTYP=FINLIST
*
*   -- (7) NOT USED
*
           FLMALLOC IOTYPE=N
*
*   -- (8) FINNOGA COMPILER LIBRARIES
*
           FLMALLOC IOTYPE=A
            FLMCPYLB SYS1.FINNOGA.LIB
*
*   -- (9) NOT USED
*
      FLMALLOC IOTYPE=N
*
*   -- (10) WORK FILE
*
      FLMALLOC IOTYPE=W,LRECL=4000,RECFM=F,RECNUM=4000
*
*   -- (11) WORK FILE
*
      FLMALLOC IOTYPE=W,LRECL=4000,RECFM=F,RECNUM=4000
*
*5665-402 (C) COPYRIGHT IBM CORP 1980, 1989

The following example illustrates an architecture definition to build a program using two translators:

Figure 3. Architecture Definition Example
SINC    PROG7  SOURCE
OBJ     PROG7  OBJ
LIST    PROG7  FINLIST
OUT1    PROG7  PUPLIST
PARM1   NOOPTIMIZE

The only difference between this architecture definition and the Finnoga 4 CC architecture definition is the presence of the OUT1 keyword. This keyword specifies the type and member into which the PUPP listing is saved. In addition to specifying the OUT1 keyword in their architecture definitions, users who use this language definition to build their Finnoga 4 source must also remember to specify the language name FINPUPP for that Finnoga 4 source in the FLMLANGL macro statement.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014