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 a program. The duplicate labels occurring later can be traced but cannot be used as a target of a CALL, SIGNAL, or function invocation.