A clause that consists of a single symbol
or string followed by a colon is a
label. The colon
in this context implies a semicolon (clause separator), so no semicolon is
required.
The label's name is taken from the string or symbol part
of the label. If the label uses a symbol for the name, the label's name
is in uppercase. If a label uses a string, the name can contain mixed-case
characters.
Labels identify the targets of CALL instructions, SIGNAL instructions,
and internal function calls. Label searches for CALL, SIGNAL, and internal
function calls are case-sensitive. Label-search targets specified as symbols
cannot match labels with lowercase characters. Literal-string or computed-label
searches can locate labels with lowercase characters.
Labels can be any number of successive clauses. Several labels can precede
other clauses.
Labels are treated as null clauses and can be
traced selectively to aid debugging.
Duplicate labels are permitted, but control is only passed to the
first of any duplicates in the main program (prolog), a method, or a routine.
The duplicate labels occurring later can be traced but cannot be used as
a target of a CALL, SIGNAL, or function invocation.
No labels are permitted within DO/LOOP, IF, and SELECT constructs.