Platform | Win32 |
Purpose |
To execute a non-local jump (Win32 only). |
Syntax |
SUBROUTINE JUMP@(LABEL)
|
Description |
This routine is described here since its most frequent use is in conjuction with SET_TRAP@. It takes a label generated by LABEL@ and jumps to the label. The label must exist in a still active routine, but this can be any distance down the call stack. |
Example |
Consider a program designed to process several sets of data and to carry on even after errors had been diagnosed in earlier data sets: |
|
PROGRAM INPUT |
|
Subroutine ERROR could be called from anywhere inside PROCESS (even many layers down inside subroutine calls) to return to label 10 ready to process the next data set. The use of JUMP@ obviates the need to provide an explicit error exit path back to the main program. It is the user's responsibility to ensure that the LABEL is still accessible when JUMP@ is called, i.e. that the routine which is called LABEL@ has not yet exited. |