|
Use this macro to associate include sets with
types in the project hierarchy. This association is used to determine
the location of include members within the project. Parsers may be
written to associate an include set with
each include found in a source member. This macro indicates to the
build function where include sets can
be found and which data sets to allocate for input to build translators.
This macro is part of a language definition. The FLMINCLS macro must
follow the FLMLANG macro for the language definition.
The FLMSYSLB
macro is used to specify data sets outside the project that contain
includes. The INCLS parameter value on the FLMSYSLB macro associates
the name of an include set with
the FLMSYSLB libraries. The search for an include member will first
take place in the include set and
then in the associated FLMSYSLB.
The default include set is
associated with an FLMSYSLB that has no INCLS parameter. The default include set is
specified by an FLMINCLS that has no name parameter. Only one default
FLMINCLS may be specified for each language definition. SCLM will
generate a default include set if
one is not specified.
Use the INCLS parameter on an FLMALLOC
macro of IOTYPE=I to associate an FLMINCLS macro
with an FLMALLOC macro. If no name is specified on the FLMINCLS macro,
the macro is for the default include set. The
default include set is
associated with FLMALLOC macros of IOTYPE=I where no INCLS parameter
is specified.
If an FLMINCLS macro
is specified for the default include set, at
least one FLMALLOC macro must reference the default include set (by
specifying IOTYPE=I and no INCLS parameter). If there is no FLMINCLS macro
in the language, an FLMALLOC macro for the default include set is
optional.
SCLM ensures that each language definition includes
a default include set and a COMPOOL include set. If the language definition
does not include macros to define these two include sets, these definitions
are generated: FLMINCLS TYPES=(@@FLMTYP,@@FLMETP)
COMPOOL FLMINCLS TYPES=(@@FLMCRF @@FLMECR)
Macro format
>>-name--FLMINCLS--+-----------------------------------+-------->
'-SAMEAS=-+-flmincls_name---------+-'
'-TYPES=(list_of_types)-'
>--+-----------------+-----------------------------------------><
| .-Y-. |
'-CROSLANG=-+-N-+-'
Parameters - name
- The name of the include set that
is being defined in this macro. An include set is
associated with FLMSYSLB or FLMALLOC when the name matches the value
of an INCLS parameter. In addition, the name may be the name of an include set returned
by a parser for the language that includes this FLMINCLS macro.
Each include set name
can only be used once per language definition.
To specify the
default include set,
leave this parameter blank.
- SAMEAS=flmincls_name
- The name of another FLMINCLS macro
that contains the list of types to search. If you use this parameter,
the include set defined
by this macro has the same list of types as the include set listed
on the SAMEAS parameter. You cannot reference the default include set by
specifying SAMEAS= with a blank.
- TYPES=(list_of_types)
- A list of the types that contain the includes for the include set. Build
searches these types in the order given on this parameter. The hierarchies
for each type are concatenated for use by all FLMALLOC macros that
reference this FLMINCLS macro.
Duplicate types are not removed from the list.
Two SCLM
variables can be used on this parameter: @@FLMTYP and @@FLMETP. The
value of @@FLMTYP is the type of the member on the first SINC statement
in an architecture definition or the type of the member if a single
member is being built. The value of @@FLMETP is the extended type
of that member. (See the EXTEND parameter on the FLMTYPE macro).
The
value that will be substituted into the @@FLMCRF variable is the DFLTCRF
type. The value that will be substituted into the @@FLMECR variable
for include set definitions is the extended type of the DFLTCRF type.
If there is no extended type for the DFLTCRF type, the @@FLMECR variable
will be ignored.
- CROSLANG=Y|N
- The CROSLANG parameter indicates whether SCLM processes the includes
of an included member when the included member has a different language
from the source member. Y indicates that includes are processed even
if language boundaries are crossed. N indicates that only the includes
of a member of the same language are processed. The value of the CROSLANG
parameter is not affected by the SAMEAS parameter. The default for
CROSLANG is Y.
Here is an example of how includes are processed
given the two possible values for this parameter:
- Member
- Includes
- SCRIPT1 language=SCRIPT
- COBOL1 language=COBOL
- COBOL1 language=COBOL
- INCLUDE1 language=COBOL
- INCLUDE1 language=COBOL
- none
- If CROSLANG=Y when SCRIPT1 is built, the build processor checks
the dates and times of COBOL1 and INCLUDE1 and puts them in the build
map.
- If CROSLANG=N when SCRIPT1 is built, the build processor checks
the dates and times of COBOL1 and puts them in the build map. The
dates and times of INCLUDE1 are not processed.
Note: If both the SAMEAS and TYPES
parameters are omitted for an FLMINCLS macro,
no types are searched for that include set. This
can be used when includes are only in data sets specified by FLMSYSLB
macros or no includes of that type are allowed. Even if no parameters
are specified on an FLMINCLS macro,
it must be referenced by at least one FLMALLOC macro.
Example 1 The example shown here demonstrates
how to define where the includes in the default include set are
found. It indicates that the INCLUDE type is to be searched first,
followed by the source type of the member being processed, and finally
by the extended type of the source member if there is one. The types
listed on this macro are used for all IOTYPE=I FLMALLOC macros where
no INCLS parameter is specified. FLMINCLS TYPES=(INCLUDE,@@FLMTYP,@@FLMETP)
Example 2 The example shown here demonstrates
how to define where the includes in the MACRO and COPY include sets are
found. It indicates that the MACRO type is the only type to be searched.
Both the MACRO and COPY include sets are referenced by IOTYPE=I FLMALLOC
macros. The IOTYPE=I FLMALLOC macros specify the allocation for the
include hierarchies of the build translators. The MACRO FLMINCLS does
not allow processing of includes across language boundaries. The COPY FLMINCLS processes
the includes because the default value (Y) was not overridden for
the CROSLANG parameter. MACRO FLMINCLS TYPES=(MACRO),CROSLANG=N
COPY FLMINCLS SAMEAS=MACRO
Example 3 The example shown here demonstrates
how to use different sequences of types for locating includes. This
may be useful in situations in which includes in several different
types have the same name. FLMLANGL LANG=ABC,VERSION=1
*
* SEQUENCES OF TYPES FOR LOCATING INCLUDES
*
DBRM FLMINCLS TYPES=(DBRMTYPE,@@FLMTYP,@@FLMETP)
SPECIAL FLMINCLS TYPES=(COPYBOOK,SOURCE,MACRO,TOOLS)
*
* PARSER TRANSLATOR
*
FLMTRNSL CALLNAM='ABC PARSE', C
FUNCTN=PARSE, C
COMPILE=FLMLPGEN, C
PORDER=1, C
GOODRC=0, C
OPTIONS=(SOURCEDD=SOURCE, C
STATINFO=@@FLMSTP, C
LISTINFO=@@FLMLIS, C
LISTSIZE=@@FLMSIZ, C
LANG=T)
* (* SOURCE *)
FLMALLOC IOTYPE=A,DDNAME=SOURCE
FLMCPYLB @@FLMPRJ.@@FLMGRP.@@FLMTYP(@@FLMMBR)
*
* BUILD TRANSLATORS
*
FLMTRNSL CALLNAM='USE DEFAULT', C
FUNCTN=BUILD, C
COMPILE=USEDFLT, C
VERSION=1.0, C
GOODRC=0, C
PORDER=1
*
* DDNAME ALLOCATIONS
* SYSLIB WILL USE DEFAULT OF THE TYPE FOR THE SINC MEMBER AND THE
* EXTENT AS DEFINED IN THE PROJECT DEFINITION
*
FLMALLOC IOTYPE=I,DDNAME=SYSLIB,KEYREF=SINC
FLMALLOC IOTYPE=S,DDNAME=SYSIN,KEYREF=SINC,RECNUM=2000
FLMALLOC IOTYPE=O,DDNAME=SYSLIN,KEYREF=OBJ,RECNUM=5000,DFLTTYP=OBJ
*
*
FLMTRNSL CALLNAM='LOOK AT DBRM', C
FUNCTN=BUILD, C
COMPILE=LOOKDBRM, C
VERSION=1.0, C
GOODRC=0, C
PORDER=1
*
* DDNAME ALLOCATIONS
* SYSLIB WILL USE DBRMTYPE FOLLOWED BY THE TYPE FOR THE SINC MEMBER AND
* THEN THE EXTENT OF THE SINC MEMBER TYPE AS DEFINED IN THE PROJECT
* DEFINITION
*
FLMALLOC IOTYPE=I,DDNAME=SYSLIB,KEYREF=SINC,INCLS=DBRM
FLMALLOC IOTYPE=S,DDNAME=SYSIN,KEYREF=SINC,RECNUM=2000
FLMALLOC IOTYPE=O,DDNAME=SYSLIN,KEYREF=OBJ,RECNUM=5000,DFLTTYP=OBJ
*
*
FLMTRNSL CALLNAM='USE SPECIAL', C
FUNCTN=BUILD, C
COMPILE=IKJSPECL, C
VERSION=1.0, C
GOODRC=0, C
PORDER=1
*
* DDNAME ALLOCATIONS
* SYSLIB WILL USE COPYBOOK, SOURCE, MACRO, and TOOLS
*
FLMALLOC IOTYPE=I,DDNAME=SYSLIB,KEYREF=SINC,INCLS=SPECIAL
FLMALLOC IOTYPE=S,DDNAME=SYSIN,KEYREF=SINC,RECNUM=2000
FLMALLOC IOTYPE=O,DDNAME=SYSLIN,KEYREF=OBJ,RECNUM=5000,DFLTTYP=OBJ
|