Tracing results, Exercises - using the trace instruction – IBM SC34-5764-01 User Manual
Page 52

When you run the example, the SAY instruction produces:
9 *-* IF a + 1 > 5 * y
>V>
"9"
>L>
"1"
>O>
"10"
>L>
"5"
>V>
"2"
>O>
"10"
>O>
"0"
The 9 is the line number. The *-* indicates that what follows is the data from the program,
IF a + 1 < 5 * y
. The remaining lines break down all the expressions.
Tracing Results
To trace only the final result of an expression, use the TRACE R (TRACE Results) form of the TRACE
instruction. The language processor analyzes all expressions that follow the instruction as follows:
>>>
Final result of an expression
If you changed the TRACE instruction operand in the previous example from an I to an R, you would see
the following results.
9 *-* IF a + 1 > 5 * y
>>>
"0"
In addition to tracing operations and results, the TRACE instruction offers other types of tracing, see
section “TRACE” on page 166.
Exercises - Using the TRACE Instruction
Write a program with a complex expression, such as:
IF (a > z) | (c < 2 * d) THEN ....
Define a, z, c, and d in the program and use the TRACE I instruction.
ANSWER
1 /************************* REXX ***************************/
2 /*
This program uses the TRACE instruction to show how
*/
3 /*
an expression is evaluated, operation by operation.
*/
4 /**********************************************************/
5
a = 9
6
y = 2
7
TRACE I
8
9
IF a + 1 > 5 * y THEN
10
SAY 'a is big enough.'
11
ELSE NOP
/* No operation on the ELSE path */
Figure 15. TRACE Shows How REXX Evaluates an Expression
Using Variables and Expressions
30
CICS TS for VSE/ESA: REXX Guide