NET/MASTER Network Control Language (NCL) Programmer's Guide

Explicit Branching
Controlling Execution Flow
106160 Tandem Computers Incorporated 5–41
The following example shows an NCL procedure that uses the LIMIT keyword to limit
a GOSUB search:
zex0527n: PROCEDURE
/* Limiting a GOSUB search */
SAY "Initial value of &SYS.RETCODE is "&SYS.RETCODE
DO &taskno = 1 to 5
GOSUB task&taskno LIMIT task3
SAY "Loop "&taskno" &SYS.RETCODE is "&SYS.RETCODE
END
SAY "Final value of &SYS.RETCODE is "&SYS.RETCODE
EXIT
task1:
SAY "Performs task "&taskno
RETSUB &taskno
task2:
task3:
SAY "Performs task "&taskno
RETSUB &taskno
task4:task5:task6:
SAY "Performs task "&taskno
RETSUB &taskno
END zex0527n
Although the DO loop generates labels with suffixes greater than 3, the LIMIT
keyword prevents the GOSUB statement from finding them. It limits the GOSUB
search at the TASK3: label.
The following screen shows the results of executing the procedure:
(12:42) --------------------- OPERATOR CONTROL SERVICES ----------------------
START ZEX0527N
Initial value of &SYS.RETCODE is 0
Performs task 1
Loop 1 &SYS.RETCODE is 1
Performs task 2
Loop 2 &SYS.RETCODE is 2
Performs task 3
Loop 3 &SYS.RETCODE is 3
Loop 4 &SYS.RETCODE is 3
Loop 5 &SYS.RETCODE is 3
Final value of &SYS.RETCODE is 3
NNM1005 START ZEX0527N PROCESSING COMPLETE. NCLID 002025
_____________________________________________________________________________
---------- ------------------ NonStop NET/MASTER D30 ---------------- --------
M=>