The POPLEVEL command (abbreviated PPL) restores all values saved with PUSH commands that were executed since the last POPLEVEL statement specifying the same marker.

You must use PUSHLEVEL to mark a starting point for a series of PUSH commands before you can use POPLEVEL to restore the saved values. POPLEVEL itself marks the end of the series. You can use POPLEVEL only within programs.


POPLEVEL marker-expression [DISCARD]



A text value used as a marker. This must be exactly the same as the value used in the corresponding PUSHLEVEL statement to mark the start of a series of saved values being popped.


Specifies that the pushed values for that level are discarded when you issue a POPLEVEL statement. When you do not specify DISCARD, the values that were pushed are used to reset the pushed objects.


Possible Uses for POP LEVEL Statement

Two possible uses for POPLEVEL statements are:

  • After a series of increasingly broadening or narrowing LIMIT commands, each with a corresponding PUSH.

  • After a single extremely long and complicated PUSH statement, or a series of short ones given throughout a program, that may need a lot of editing. PUSHLEVEL and POPLEVEL allow you to edit the arguments for a long and complicated PUSH statement without also having to edit a corresponding long and complicated POP statement.


To see a sample program using POPLEVEL, see the example for the PUSHLEVEL command.