|
This example shows how pieces of a project might look if it were
set up to use multiple include sets.
The following list shows the different types of includes in the
project and the location of each include type in the project data
sets.
- Include Type
- Project Types and SYSLIB Data sets
to Search
- Constants
- CONSTANT
- Messages
- INCLENGL, INCLUDE, PRODX.MSGLIB (syslib data set)
- SQL Declarations
- DCLGEN, source member's type, source member's extended type
- All other includes
- INCLUDE, source member's type, source member's extended type,
SYS1.SEDCHDRS (syslib data set)
Figure 1 shows how the include section
of a source member might be coded:
Figure 1. Source member with includes
in different include sets#include <stdio> /* C standard i/o */
EXEC SQL INCLUDE SQLDEF1; /* SQL definitions */
#include "DD:MESSAGE(prog1)" /* prog1 specific messages */
#include "DD:CONSTANT(common)" /* common constants */
#include "DD:CONSTANT(prog1)" /* prog1 specific constants */
The parser must return the following values:
- Member
- include set
- STDIO
- SQLDEF1
- SQL
- PROG1
- MESSAGE
- COMMON
- CONSTANT
- PROG1
- CONSTANT
You could then use the language definition in Figure 2 for this member.
Figure 2. Language definition to support
multiple include sets
(Part 1 of 3)***********************************************************************
* C370 W/DB2 LANGUAGE DEFINITION FOR PROJECT X *
* *
***********************************************************************
*
CDB2 FLMSYSLB SYS1.SEDCHDRS
*
FLMLANGL LANG=CDB2,VERSION=V1,ALCSYSLB=Y
*
* CONSTANT INCLUDES
*
CONSTANT FLMINCLS TYPES=(CONSTANT)
*
* MESSAGE INCLUDES
*
MESSAGE FLMINCLS TYPES=(INCLENGL,INCLUDE)
*
* SQL INCLUDES
*
SQL FLMINCLS TYPES=(DCLGEN,@@FLMTYP,@@FLMETP)
*
* ALL OTHER INCLUDES - DEFAULT INCLUDE SET
*
FLMINCLS TYPES=(INCLUDE,@@FLMTYP,@@FLMETP)
*
* PARSER TRANSLATOR
*
FLMTRNSL CALLNAM='C370 REXX PARSER', C
FUNCTN=PARSE, C
COMPILE=MYCPARSE, C
DSNAME=SOMEUSR.PARSER.LOAD, C
CALLMETH=TSOLNK, C
PORDER=1, C
OPTIONS=(LISTSIZE=@@FLMSIZ, C
LISTINFO=@@FLMLIS, C
STATINFO=@@FLMSTP)
* (* SOURCE *)
FLMALLOC IOTYPE=A,DDNAME=SOURCE
FLMCPYLB @@FLMDSN(@@FLMMBR)
*
* BUILD DB2 PREPROCESSOR TRANSLATOR
*
* --DB2 PREPROCESSOR INTERFACE--
FLMTRNSL CALLNAM='DB2 C PREP', C
FUNCTN=BUILD, C
COMPILE=DSNHPC, C
VERSION=D220, C
GOODRC=4, C
PORDER=3, C
OPTIONS=(HOST(C),APOST)
Figure 3. Language definition to support
multiple include sets
(Part 2 of 3)* 1 -- N/A --
FLMALLOC IOTYPE=N
* 2 -- N/A --
FLMALLOC IOTYPE=N
* 3 -- N/A --
FLMALLOC IOTYPE=N
* 4 -- SYSLIB --
FLMALLOC IOTYPE=I,INCLS=SQL
* 5 -- SYSIN --
FLMALLOC IOTYPE=S,KEYREF=SINC,RECFM=FB,LRECL=80, C
RECNUM=5000
* 6 -- SYSPRINT --
FLMALLOC IOTYPE=W,RECFM=FBA,LRECL=133, C
RECNUM=35000,PRINT=Y
* 7 -- N/A --
FLMALLOC IOTYPE=N
* 8 -- SYSUT1 --
FLMALLOC IOTYPE=W,RECFM=FB,LRECL=800,RECNUM=9000
* 9 -- SYSUT2 --
FLMALLOC IOTYPE=W,RECFM=FB,LRECL=800,RECNUM=9000
* 10 -- SYSUT3 --
FLMALLOC IOTYPE=W,RECFM=FB,LRECL=800,RECNUM=9000
* 11 -- N/A --
FLMALLOC IOTYPE=N
* 12 -- SYSTERM --
FLMALLOC IOTYPE=A
FLMCPYLB NULLFILE
* 13 -- N/A --
FLMALLOC IOTYPE=N
* 14 -- SYSCIN --
FLMALLOC IOTYPE=W,RECFM=FB,LRECL=80, C
RECNUM=9000,DDNAME=DB2TRANS
* 15 -- N/A --
FLMALLOC IOTYPE=N
* 16 -- DBRMLIB--
FLMALLOC IOTYPE=P,DDNAME=DBRMLIB,MEMBER=@@FLMONM, C
DFLTTYP=DBRM,KEYREF=OUT1, C
RECFM=FB,LRECL=80,RECNUM=5000,DIRBLKS=1
*
* BUILD C370 TRANSLATOR
*
FLMTRNSL CALLNAM='C 370', C
FUNCTN=BUILD, C
COMPILE=EDCCOMP, C
DSNAME=SYS1.SEDCCOMP, C
VERSION=C210, C
GOODRC=0, C
PORDER=3, C
OPTIONS=(XREF,LANGLVL(SAAL2),SOURCE,OPT,TEST(ALL), C
MARGINS(1,72),NOGONUM,NOTERMINAL,FLAG(I),SHOWINC)
Figure 4. Language definition to support
multiple include sets
(Part 3 of 3)*
* 1 (* SYSIN *)
FLMALLOC IOTYPE=U,DDNAME=DB2TRANS
*
* 2 (* SYSLIN *)
FLMALLOC IOTYPE=O,KEYREF=OBJ,RECFM=FB,LRECL=80, C
RECNUM=5000,DFLTTYP=OBJ
*
* 3 (* SYSMSGS *)
FLMALLOC IOTYPE=A
FLMCPYLB SYS1.SEDCMSGS(EDCMSGE)
*
* 4 (* SYSLIB *)
FLMALLOC IOTYPE=A
FLMCPYLB SYS1.SEDCHDRS
*
* 5 (* USERLIB *)
FLMALLOC IOTYPE=I
*
* 6 (* SYSPRINT *)
FLMALLOC IOTYPE=A
FLMCPYLB NULLFILE
*
* 7 (* SYSCPRT *)
FLMALLOC IOTYPE=O,KEYREF=LIST,RECFM=VBA,LRECL=137, C
RECNUM=20000,PRINT=Y,DFLTTYP=LIST
*
* 8 (* SYSPUNCH *)
FLMALLOC IOTYPE=A
FLMCPYLB NULLFILE
*
* 9 (* SYSUT1 *)
FLMALLOC IOTYPE=W,RECFM=FB,LRECL=80,RECNUM=2000
*
* 10 (* SYSUT4 *)
FLMALLOC IOTYPE=W,RECFM=FB,LRECL=80,RECNUM=2000
*
* 11 (* SYSUT5 *)
FLMALLOC IOTYPE=W,RECFM=FB,LRECL=80,RECNUM=2000*
* 12 (* SYSUT6 *)
FLMALLOC IOTYPE=W,RECFM=FB,LRECL=80,RECNUM=2000
*
* 13 (* SYSUT7 *)
FLMALLOC IOTYPE=W,RECFM=FB,LRECL=80,RECNUM=2000
*
* 14 (* SYSUT8 *)
FLMALLOC IOTYPE=W,RECFM=FB,LRECL=80,RECNUM=2000
*
* 15 (* SYSUT9 *)
FLMALLOC IOTYPE=W,RECFM=VB,LRECL=137,RECNUM=2000
*
* 16 (* SYSUT10 *)
FLMALLOC IOTYPE=A
FLMCPYLB NULLFILE
*
* (* CONSTANT *)
FLMALLOC IOTYPE=I,DDNAME=CONSTANT,INCLS=CONSTANT
*
* (* MESSAGE *)
FLMALLOC IOTYPE=I,DDNAME=MESSAGE,INCLS=MESSAGE
|