z/OS TSO/E Programming Services
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Using IKJOPER to describe a delimiter-dependent positional operand

z/OS TSO/E Programming Services
SA32-0973-00

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.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014