Use the IKJOPER
macro instruction to provide a parameter control entry (PCE)
that describes an expression. An expression consists of three parts;
two operands and one operator in the form:
(operand1 operator operand2)
typically entered as:
(abc eq 123)
The parts of an expression are described by PCEs that are chained
to the IKJOPER PCE. Use the IKJTERM macro instruction to identify the operands,
and use the IKJRSVWD macro instruction to identify the operator.
Figure 1 shows the format of the IKJOPER macro instruction.
Each of the operands is explained following the figure.
Figure 1. The IKJOPER macro instruction label IKJOPER 'parameter-type'[,PROMPT='prompt data' ]
[,DEFAULT='default value' ]
[,HELP=('help data','help data',…)]
[,VALIDCK=symbolic-address],OPERND1=label1
,OPERND2=label2,RSVWD=label3
[,CHAIN=label4]
- label
- This name is used to address the PCE built by the IKJOPER macro.
The hexadecimal offset to the parameter descriptor entry built by
the Parse Service Routine for this operand is contained in the PCE.
- ‘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.
Note: Parse
uses this field only for error messages for the complete expression.
The IKJTERM and IKJRSVWD PCEs are used when parse issues error messages
for missing operands or a missing operator. If a validity check routine
indicates that the expression is not valid, parse prompts for the
entire expression.
- PROMPT=‘prompt data’
- The operand described by this IKJOPER 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.
- DEFAULT=‘default value’
- The operand described by this IKJOPER macro instruction is required, but
the terminal user need not enter it. If the operand is not entered,
the Parse Service Routine uses the value specified as the default value.
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 expression. The Parse Service Routine
calls this routine after first determining that the expression is
syntactically correct.
- OPERND1=label1
- Supply the name of the label field of the IKJTERM macro instruction that
is used to describe the first operand in the expression. This IKJTERM macro instruction
should be coded immediately following the IKJOPER macro instruction that describes
the expression.
- OPERND2=label2
- Supply the name of the label field of the IKJTERM macro instruction that
is used to describe the second operand in the expression. This IKJTERM macro instruction
should be coded immediately following the IKJNAME macro instructions that describe
the operator in the expression under the associated IKJRSVWD macro instruction.
- RSVWD=label3
- Supply the name of the label field of the IKJRSVWD macro instruction that
begins the list of reserved words that are used to describe the possible
operators to be entered for the expression. The IKJRSVWD and associated
IKJNAME macro instructions should be coded immediately following the IKJTERM macro
that describes the first operand, and immediately preceding the IKJTERM
macro that describes the second operand.
- CHAIN=label4
- indicates that this operand described by the IKJOPER macro instruction can
be entered as an expression or as a variable. Supply the name of
the label field of an IKJTERM macro instruction that describes the variable term.
The LIST and RANGE options are not permitted on this IKJTERM macro instruction.
Code this IKJTERM macro instruction immediately following the IKJTERM macro that
describes the second operand.
Note: The Parse Service Routine first determines
if the operand is entered as an expression. If the operand is an expression,
that is, enclosed in parentheses, then it is processed as an expression.
If it is not an expression, then it is processed using the chained
IKJTERM PCE to control the scan of the operand.