GO alters the normal flow of control within a PROG function. The
next statement of a PROG function to be evaluated is immediately
preceded by LABEL. A GO may only appear in the following
situations:
- At the top level of a PROG referencing a label which also
appears at the top level of the same PROG.
- As the consequent of a COND item of a COND appearing on
the top level of a PROG.
- As the consequent of a COND item which appears as the
consequent of a COND item to any level.
- As the last statement of a PROGN which appears at the top
level of a PROG or in a PROGN appearing in the consequent
of a COND to any level subject to the restrictions of 2 and 3.
- As the last statement of a PROGN within a PROGN or as the
consequent of a COND in a PROGN to any level subject to
the restrictions of 2, 3 and 4.
If LABEL does not appear at the top level of the PROG in which the GO
appears, an error occurs:
***** LABEL is not a known label
If the GO has been placed in a position not defined by rules 1-5, another
error is detected:
***** Illegal use of GO to LABEL