|
This macro serves a function similar
to JCL EXECUTE (EXEC) statements in your procedure libraries. Several
keyword parameters in this macro contain data identical to your procedures.
Use
this macro once for each translator to be invoked for a language.
Specify the translator load module name, translator load data set
name, version of the translator, and translator options using this
macro's parameters.
Macro format
>>-+------------------+--FLMTRNSL--CALLNAM='call_name'---------->
'-translator_label-'
>--+-------------------------+--,COMPILE=translator_name-------->
| (1) .-PARSE--. |
'-----,FUNCTN=-+-VERIFY-+-'
+-BUILD--+
+-COPY---+
'-PURGE--'
>--,-+--------------------------------+------------------------->
'-DSNAME=translator_dataset_name-'
>--,-+------------------------------+--------------------------->
| .-0----------------. |
'-GOODRC=-+-good_return_code-+-'
>--,-+----------------------------------+----------------------->
| .-0-------------------. |
'-NOSVEXT=-+-no_save_external_rc-+-'
>--,-+----------------+--,-+---------------------+-------------->
| .-Y-. | '-OPTIONS=option_list-'
'-OPTFLAG=-+-N-+-'
>--,-+---------------------------+--,-+----------------+-------->
'-PARMKWD=parameter_keyword-' '-PDSDATA=-+-Y-+-'
'-N-'
>--,-+---------------+--,-+----------------------------+-------->
| .-1-. | '-VERSION=translator_version-'
'-PORDER=-+-0-+-'
+-2-+
'-3-'
>--,-+----------------------+----------------------------------->
| .-ATTACH-. |
'-CALLMETH=-+-LINK---+-'
+-TSOLNK-+
'-ISPLNK-'
>--,-+---------------------------+--,-+----------------+-------->
'-TASKLIB=translator_ddname-' | .-N-. |
'-INPLIST=-+-Y-+-'
>--,-+--------------------------------+------------------------><
'-MBRRC=maximum_good_return_code-'
Notes: - Comma separators are only required up to and before the last
optional parameter specified.
Parameters - translator_label
- A 1- to 8-character string containing no blanks or commas. The
translator label is used by the FLMTCOND macro to identify build translators
in a language definition to examine their return codes at run time
for conditional execution of build translators.
- CALLNAM='call_name'
- The name of the translator with a maximum of 16 characters. This
name appears in SCLM messages along with translator return codes.
If you want embedded blanks in the call name, surround the string
with single quotes.
- ,FUNCTN=PARSE|VERIFY|BUILD|COPY|PURGE
- Identifies the function that the translator performs. The default
is PARSE.
- A parse translator gathers statistics and dependencies. Parse
translators run during migration, when the member is saved in an edit
session, or when the SAVE or PARSE service is called. A parse translator
can also be used to define user data and change codes for the member.
- A verify translator can be used to perform validation in addition
to default SCLM validation. The verify translator can be used to check
the change codes or user data defined for members. Another example
could be verification of data that is related to an SCLM-controlled
member but is not under SCLM control itself. Verify translators run
during build and promote verification.
For builds, SCLM invokes
a verify translator to verify inputs to build translators. For example,
when an LEC architecture definition is being built, the source member
is verified before compiling and the object member is verified before
linking.
For promotes, SCLM invokes a verify translator to
verify build inputs and outputs. For example, when an LEC architecture
definition is being promoted, the source, object, and load members
are verified before the promote copy phase.
- A build translator can assemble, compile, link, or otherwise process
a member so that the outputs have different formats than the inputs.
For example, building a COBOL source program generates a listing and
an object module.
- A copy translator is invoked when Promote copies an SCLM-controlled
member to the next group in the hierarchy. Copy translators are invoked
before Promote copies the SCLM-controlled member. If the copy translators
for a member fail, Promote does not attempt to copy the controlled
member. Copy translators can be used to copy data that is related
to an SCLM-controlled member but is not under SCLM control itself.
- Purge translators can be used to purge data that is related to
an SCLM-controlled member but is not under SCLM control itself. Purge
translators are invoked whenever SCLM performs a delete operation
on an SCLM-controlled member during build or promote.
- ,COMPILE=translator_name
- The name of the program that is invoked by the translator. This
would normally be a parser, compiler, assembler, or a user-supplied
routine.
For CALLMETH of ATTACH, LINK, or TSOLNK, this is the
name of a REXX exec or CLIST, or the entry point to a load module.
For a CALLMETH of ISPLNK, this must have a value of SELECT.
- ,DSNAME=translator_dataset_name
- The name of the data set containing the translator load module
(COMPILE parameter) or REXX exec being invoked. The data set name
parameter is not required with the translator load module that resides
in the system concatenation. Use the TASKLIB parameter to specify
additional libraries to be searched. SCLM looks in the data set specified
by the DSNAME parameter first, followed by the data sets allocated
to the TASKLIB ddname, if specified, and then follows the normal MVS™ search order. The data set name
can be up to 44 characters.
Note: The DSNAME in the translate step
is ignored when CALLMETH is ISPLNK. For REXX and CLIST, make sure
that the required EXEC or CLIST is in the SYSEXEC or SYSPROC concatenation.
For programs, make sure that the load module is allocated in ISPLLIB
or STEPLIB.
- ,GOODRC=good_return_code|0
- Definition
of an acceptable return code from the translator that must be a positive
integer or 0. If you get a return code value greater than good_return_code from
a translator, the process has failed, and no accounting information
is saved in the hierarchy. The default is 0. CALLMETH=TSOLNK will
result in a return code equal to the translator return code for normal
completion, the abend code from the translator, or a 40 in the event
of an IKJEFTSR failure.
- ,NOSVEXT=no_save_external_rc|0
- A return code value indicating whether any translator outputs
targeted to an external data set were saved (valid for FUNCTN=BUILD).
Use this parameter with the DEPPRCS parameter on the FLMLANGL macro.
It allows or disallows dependency processing if you save some outputs
produced by the translator.
The build processor determines that
external outputs were not saved by the translator if no_save_external_rc is
equal to a translator return code other than zero. The default is
0.
- ,OPTFLAG=N|Y
- Indicates whether developers can
override default translator options. The default is Y. This parameter
has no effect if you specify OPTOVER=N on the FLMCNTRL
macro.
- ,OPTIONS=option_list
- A list of options passed to the program specified in the COMPILE
parameter. For example, if COMPILE=FLMLPGEN, you can specify in the
OPTIONS field any of the parameters that are supported by FLMLPGEN.
Delimit the list with single quotes or parentheses. The options
can also contain variables to provide dynamic information to the COMPILE
program. The maximum length is 255 characters, including delimiters.
The @@FLMMBR and @@FLMTYP variables will be replaced with the name
of the member and type of the last SINC, INCL, or INCLD statement
in the architecture definition. If a source member is being built,
it will be the name of the source member. See SCLM Variables and Metavariables. Also see the PARMKWD parameter
for more information about options.
The IBM® linkage editor requires that the DCBS option
parameter be passed in order for the SYSLMOD block size to be used
in creating load modules. If the DCBS option is not specified, the
linkage editor creates load modules using the maximum record size
for the device type. Use the OPTIONS= parameter on the FLMTRNSL macro
to pass the DCBS option. Failure to do so can result in message FLM44507
RC4.
The CALLMETH of ISPLNK requires that the option string
contain the keywords and parameters for the ISPF SELECT service. The
options must be in the format expected by the ISPF SELECT service.
For a description of the ISPF SELECT service, refer to the z/OS ISPF Services Guide.
- ,PARMKWD=parameter_keyword
- The keyword (PARM0..PARM9) used in architecture members to specify
additional options for this translator.
Note: The complete options
list passed to the translator has a maximum length of 512 characters
and has the format: string1
,string2
,string3
where - string1
- is the options from the OPTIONS parameter on the FLMTRNSL macro.
- string2
- is the options from the PARM statements in the architecture definition.
- string3
- is the options from the PARMx statements in the architecture separated
by commas.
Extraneous blanks are removed
by SCLM.
- ,PDSDATA=Y|N
- Specifies whether the input members for this translator reside
in SCLM-controlled partitioned data sets. The value of this parameter
must be Y for parse and build translators.
If this parameter is
not specified, the default varies according to translator function
type. The default for parse, build, and verify translators is Y; the
default for copy and purge translators is N.
If multiple translators
are defined for copy and purge functions, you must not specify Y for
one translator and N for another. Note: SCLM PROMOTE will only invoke
Copy and Purge translators for SCLM-controlled partitioned data set
members if PDSDATA is set to Y. Copy and Purge translators that operate
on nonpartitioned data set controlled parts (such as CSP MSLs) must
have PDSDATA set to N.
- ,PORDER=0|1|2|3
- An integer indicating the parameter order to the translator. The
translator parameter order must be an integer from 0 to 3. The default
is 1. SCLM can pass two kinds of parameters to the translator: the
option list and the ddname substitution list. The option list contains
the translator options (OPTIONS parameter) concatenated with the options
specified in the architecture member (see PARMKWD parameter). The
ddname substitution list contains the ddnames specified for allocation.
See the DDNAME parameter of FLMALLOC macro.
This list defines the valid values for the translator parameter order:
- 0
- No parameters passed
- 1
- Pass option list
- 2
- Pass ddname substitution list
- 3
- Pass option list followed by ddname substitution list
Ddname substitution lists
are a feature of many translators (such as precompilers, utilities,
assemblers, and compilers). The correct format of a ddname substitution
list is usually unique for each translator and can be located in the
programming guide for the translator.
The ddname substitution
list is a string of ddnames allocated for the translator. The ddnames
appear on the substitution list in the order specified by the FLMALLOC
macros in the language definition. See the topic, "Invoking Utility
Programs from an Application Program" in z/OS DFSMSdfp Utilities for
general information about ddname substitution lists. See the manuals
for the specific translator being invoked for details on the substitution
list contents expected. For IBM supplied
compilers, this information is located in the compiler's Programmers
Guide under "Invoking Compiler from Application Programs" or "Dynamic
Invocation of Compiler". SCLM limits the size of the ddname substitution
list to 512 characters or 64 ddnames.
- ,VERSION=translator_version
- An 8-character representation of the translator version. This
parameter is informational only. SCLM stores this parameter in the
account record for each output member saved from the translators.
If you do not specify this parameter, SCLM sets it to blank.
- ,CALLMETH=ATTACH|LINK|TSOLNK|ISPLNK
- Indicates whether the translator is to be linked, attached, or
invoked by the TSO service facility routine or called through ISPF
services. Use ATTACH for load modules unless you need access to ISPF
variables or services; in that case, use LINK. Using LINK can result
in loops or out-of-space abends because storage is not freed between
calls to the translators. The default is ATTACH.
TSOLNK is for
translators written as REXX execs. TSOLNK results in the translator
being invoked from IKJEFTSR (TSO service facility routine) with parameter
1 of x'00010001'. This parameter indicates that the TSO service facility
should invoke the requested translator from an unauthorized environment
and that the translator can be a TSO command, REXX exec, or CLIST.
ISPLNK
is for translators that must have access to ISPF variables or services.
The value specified on the COMPILE parameter is the ISPF service that
is used to call the translator. The only supported value is SELECT.
The keywords, including the command to run, are specified in the OPTIONS
parameter. The name of the load module, CLIST, REXX exec or other
command is specified in the OPTIONS parameter.
This example
shows the CALLMETH, COMPILE, and OPTIONS parameters on an FLMTRNSL
macro used to run the FLMLRC37 parser using ISPLNK: FLMTRNSL CALLNAM='C PARSE', C
FUNCTN=PARSE, C
CALLMETH=ISPLNK, C
COMPILE=SELECT, C
PORDER=1, C
OPTIONS='PGM(FLMLRC37) PARM(STATINFO=@@FLMSTP,LISTINFO=@C
@FLMLIS,LISTSIZE=@@FLMSIZ)'
- ,TASKLIB=translator_ddname
- The ddname associated with one or more data sets that contain
the translator load module. The data sets must be specified using
an FLMALLOC macro with DDNAME=translator_ddname. When specified for
a translator using a DDNAME substitution list, the TASKLIB allocation
does not appear in the list passed to the translator.
TASKLIB
is only valid for CALLMETH=ATTACH. The operating system searches for
executable members in the specified DSNAME parameter, then in the
TASKLIB concatenation, and then in the system concatenation.
- ,INPLIST=N|Y
- Indicates that this translator supports Input List Processing.
You must specify INPLIST=Y to use the IBM Ada/370
Compiler input list function.
- ,MBRRC=maximum_good_return_code
- Use this parameter with the INPLIST parameter. MBRRC indicates
the maximum value of the good_return_code for
each member in the Input List. This parameter is similar in function
to the GOODRC parameter for the translator. However, the GOODRC parameter
applies to a single return code supplied by the translator. The MBRRC
parameter indicates the maximum valid value for any member of the
Input List.
Example 3 A translator for the Pascal compiler
is defined. The compiler is member PASCALVS in data set SYS2.VSPASCAL.LOAD.
The translator can only be invoked by the build processor (FUNCTN=BUILD).
The build processor refers to the compiler by its call name, PASCAL
COMPILER. Only the option list can be passed to the translator (PORDER=1).
The default options for this translator are specified by the OPTIONS
parameter. Build considers any translator return code greater than
0 as an error (GOODRC=0).
FLMTRNSL CALLNAM='PASCAL COMPILER', X
FUNCTN=BUILD, X
COMPILE=PASCALVS, X
DSNAME=SYS2.VSPASCAL.LOAD, X
VERSION=1.0, X
GOODRC=0, X
PORDER=1, X
OPTIONS='NOXREF,CHECK,LINECOUNT(75),NOOPT'
|