POP Premature Exit from Stack
Format
POP [*]
Where:
* | Optional. Clears the complete GOSUB/FOR stack. |
(The * option was added in PxPlus 2018.)
Description
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.
See Also
EXITTO End Loop, Transfer Control
'POP' or 'WR' Restore Previous Window
RESET Reset Program State
Example
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";
returnBelow 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