Clauses and instructions
Clauses can be subdivided into null clauses, labels, instructions, assignments, keyword instructions, and commands.
Null clauses
A clause consisting only of blanks or comments or both is a null clause. It is completely ignored (except that if it includes a comment it is traced, if appropriate).
Labels
A clause that consists of a single symbol followed by a colon is a label. The colon in this context implies a semicolon (clause separator), so no semicolon is required. Labels identify the targets of CALL instructions, SIGNAL instructions, and internal function calls. More than one label may precede any instruction. Labels are treated as null clauses and can be traced selectively to aid debugging.
Any number of successive clauses can be labels. This permits multiple labels before other clauses. Duplicate labels are permitted, but control passes only 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.
You can use DBCS characters. See Double-Byte Character Set (DBCS) Support.
Instructions
An instruction consists of one or more clauses describing some course of action for the language processor to take. Instructions can be: assignments, keyword instructions, or commands.
Assignments
A single clause of the form
symbol=expression is an instruction known as
an assignment. An assignment gives a variable a (new) value. See Assignments and Symbols.
Keyword instructions
DO
instruction
instruction
instruction
END A subkeyword
is a keyword that is reserved within the context of some particular
instruction, for example, the symbols TO and WHILE in the DO instruction.Commands
A command is a clause that consists of only an expression. The expression is evaluated and the result is passed as a command string to some external environment.