POP |
Premature Exit from Stack |
POP [*]
Where:
* |
Optional. Clears the complete GOSUB/FOR stack. |
(The * option was added in PxPlus 2018.)
The POP directive pops, or clears, the top entry on the stack. Using POP * clears the complete GOSUB/FOR stack (similar to the RESET directive except that RESET also changes the CTL and ERR values).
The POP directive performs the same operation as an EXITTO stmtref directive for terminating a FOR/NEXT or GOSUB operation except that it does not transfer control (to a statement reference) but continues with the next statement in the execution sequence. See Example.
EXITTO End Loop, Transfer Control
'POP' or 'WR' Restore Previous Window
RESET Reset Program State
PxPlus will generate an Error #28: No corresponding FOR for NEXT if it encounters a NEXT directive after you POP a FOR loop. In this example, the POP directive is used to terminate a FOR loop, leaving the GOSUB's RETURN entry on the stack. (No Error #28 is generated.)
gosub SCAN_FOR_IT
SCAN_FOR_IT:
for I=1 to 1000
if X$[I]="MOOCOW" \
then pop ;
return
next
print "NOT FOUND";
return
Below is a typical POP * example:
def class "a"
function test()Do_Test
end def
Do_Test:
for i=1 to 3
for j=1 to 3
print "I=",i," J=",j
if j=2 \
then pop *;
return 123
next
next
return 456