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


FLMTRNSL macro

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

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

Read syntax diagramSkip visual syntax diagram
>>-+------------------+--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:
  1. 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'

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014