Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Indirect operand specification

&pagelevel(4)&pagelevel

In the case of indirect operand specification, all the operands that the user wants to specify in the corresponding EDT statement are stored in a string variable (#S00..#S20) before the EDT statement is executed. In the EDT statement itself, the indirect operand specification is introduced by the & character after the statement name and separated from it by one or more blanks. Thee & character must be immediately followed by the name of the string variable which contains the operands for the EDT statement. The statement may not contain any other characters (apart from blanks).

Once the statement name has been identified, the remainder of the statement (the & character followed by the name of the string variable) is replaced by the content of the string variable and the operands it contains are evaluated.

If logging is active (e.g. @LOG ALL or @LOG COMMANDS) then the statement generated by this substitution is output together with the original input.
If the line causing an error message is output then only the original input is specified.

If the length of the statement name together with the substitution of the string variable exceeds 32768 then processing is rejected with error message EDT5485.

The text operand in the statements @+, @-, @IF (format 1) and @SET (format 6) may itself be an EDT statement. Indirect operand specification is also possible in these EDT statements specified in the text operand.

No indirect operand specification is permitted in the statements @: (redefine the EDT statement symbol), @+, @- and value assignments to EDT variables with the @SET statement (the statement name @SET is omitted). This also applies to the @PARAMS statement since all its operands start with the character &.

Caution

If indirect operand specifications are used for the @IF and @SET (format 6) statements then endless loops may occur in EDT if the text operand in these statements itself contains an @IF or @SET (format 6) statement, e.g.:

1. @SET #S1='1: @SET &#S1' -------------------------------------- (1)

2. @SET &#S1 ---------------------------------------------------- (2)

oder:

1. @SET #S1='1: @IF &#S2' --------------------------------------- (1)

2. @SET #S2='NO ERRORS: @SET &#S1' ------------------------------ (1)

3. @SET &#S1 ---------------------------------------------------- (2)

(1) The string variables #S1 and #S2 are filled with suitable content prior to indirect operand specification.

(2) Once this statement has been issued with indirect operands, EDT enters an endless loop.

If additional different string variables are used, it is possible to construct statement sequences of any required level of complexity which may also cause EDT to enter an endless loop.