Use the IKJTERM
macro instruction to describe a positional operand that is one
of the following:
- Statement number
- Constant
- Variable
- Constant or variable
The order in which you code the macros for positional operands
is the order in which the Parse Service Routine expects to find the operands in
the command string.
Figure 1 shows the format of the IKJTERM macro instruction. Each
of the operands is explained following the figure.
Figure 1. The IKJTERM macro instruction label IKJTERM 'parameter-type'[,LIST][,RANGE]
[,UPPERCASE ] [ {STMT }]
[,ASIS ] ,[TYPE= {CNST }]
[ {VAR }]
[ {ANY }]
[,SBSCRPT[=label-PCE]] ,[PROMPT='prompt data' ]
,[DEFAULT='default value' ]
[,HELP=('help data','help data',…)]
[,VALIDCK=symbolic-address][,RSVWD=label-PCE]
- label
- This name is used to address the PCE built by the IKJTERM macro.
The hexadecimal offset to the parameter descriptor entry (PDE) built
by the Parse Service Routine for this operand is contained in the PCE.
Note: The hexadecimal offset to the PDE will contain binary zero
when the IKJTERM macro is used to describe a subscript of a data name.
- ‘parameter-type’
- This field is required so that the operand can be identified
when an error message is necessary. This field differs from the PROMPT
field in that the PROMPT field is not required and, if supplied, is
used only for a required operand that is not entered by the terminal
user. Blanks within the apostrophes are allowed.
- LIST
- The command operands can be entered by the terminal user as
a list, in the form:
commandname (operand,operand,…)
The
LIST option can be used with any of the TYPE= positional operands.
- RANGE
- The command operands can be entered by the terminal user as
a range, in the form:
commandname operand:operand
The
RANGE option can be used with any of the TYPE= positional operands.
Note: The LIST and RANGE options cannot be used when the IKJTERM macro instruction
is used to describe a subscript of a data-name.
- UPPERCASE
- The operand is to be translated to uppercase.
- ASIS
- The operand is to be left as it was entered by the terminal
user.
- TYPE=STMT | CNST | VAR | ANY
- describes the type of the operand as one of the following:
- STMT
- Statement number
- CNST
- Constant
- VAR
- Variable
- ANY
- Constant or variable
See Delimiter-dependent operands for a syntactical definition
of these operands.
- SBSCRPT[=label-PCE]
- specifies one of two conditions:
- If you specify SBSCRPT with a label-PCE, then the data-name described
by the IKJTERM macro can be subscripted. Supply the name of the label
of an IKJTERM macro instruction that describes the subscript. Only TYPE=VAR or
TYPE=ANY operands can be subscripted.
- If you specify SBSCRPT without a label-PCE, then the IKJTERM macro
describes the subscript of a data-name. All TYPE= parameters can
be used on a subscript except TYPE=STMT. The LIST and RANGE options
cannot be used on an IKJTERM macro that describes a subscript.
Note: You must use two IKJTERM macro instructions to describe a
subscripted data-name. The first IKJTERM macro describes the data
name and specifies the SBSCRPT option with the label of the second
IKJTERM macro. The second IKJTERM macro describes the subscript of
the data-name and specifies SBSCRPT without a label-PCE. The second macro instruction
must immediately follow the first.
- PROMPT=‘prompt data’
- The operand described by this IKJTERM macro instruction is required. The
prompting data that you specify is issued as a message if the operand
is not entered by the terminal user. If prompting is necessary and
the terminal is in prompt mode, the Parse Service Routine adds a message-identifying
number (message ID) and the word ENTER to the beginning of the message
before writing it to the terminal.
If prompting is necessary but
the terminal is in no-prompt mode, the Parse Service Routine adds a message ID and
the word MISSING to the beginning of the message before writing it
to the terminal. If a subscripted data-name requires prompting, the
terminal user is prompted for the entire name including the subscript.
- DEFAULT=‘default value’
- The operand described by this IKJTERM macro instruction is required, but
the terminal user need not enter it. If the operand is not entered,
the value specified as the default value is used.
Note: If
neither PROMPT nor DEFAULT is specified, the operand is optional.
The Parse Service Routine takes no action if the operand is not present.
- HELP=(‘help data’,‘help data’,…)
- You can provide up to 255 second-level messages. (Note, however,
that the assembler in use can limit the number of characters that
a macro operand with a sublist can contain.) Enclose each message
in apostrophes and separate the messages by single commas. These
messages are issued one at a time after each question mark entered
by the terminal user in response to a prompting message from the Parse Service Routine.
Parse
adds a message ID and the word ENTER (in prompt mode) or MISSING (in
no-prompt mode) to the beginning of each message before writing it
to the terminal.
- VALIDCK=symbolic-address
- Supply the symbolic address of a validity checking routine if
you want to perform additional checking on this operand. Parse calls
this routine after first determining that the operand is syntactically
correct.
- RSVWD=label-PCE
- Use this option when TYPE=CNST or TYPE=ANY is specified to indicate
that this operand can be a figurative constant. Supply the address
of the PCE (label on a IKJRSVWD macro instruction) that begins the list of reserved
words that can be entered as a figurative constant.
This list of
reserved words is defined by a series of IKJNAME macros that contain
all possible names and immediately follow the IKJRSVWD macro.
Note: The IKJRSVWD macro can be coded anywhere in the list of
macros that build the PCL except following an IKJSUBF macro instruction. This
permits other IKJTERM macro instructions to refer to the same list.