Chapter 2. Keyword Instructions
A
keyword instruction is one or more clauses, the
first of which starts with a keyword that identifies the instruction. Some
keyword instructions affect the flow of control, while others provide services
to the programmer. Some keyword instructions, like DO, can include nested
instructions.
In the syntax diagrams on the following pages, symbols (words) in capitals
denote keywords or subkeywords. Other words, such as
expression,
denote a collection of tokens as defined previously. Note, however, that the
keywords and subkeywords are not case-dependent. The symbols
if,
If,
and
iF all have the same effect.
A clause requires a semicolon (
;) as a terminating delimiter
unless the end of a line implies it.
A keyword instruction is recognized
only if
its keyword is the first token in a clause,
the second token does not start with
an equal (=) character (implying an assignment) or a colon (implying a label),
and the whole instruction does not have the form of a message instruction.
The keywords ELSE, END, OTHERWISE, THEN, and WHEN are treated in
the same way. Note that any clause that starts with a keyword defined by Rexx
cannot be a command. Therefore,
is an ARG keyword
instruction, not a command that starts with a call to the ARG built-in function.
A syntax error results if the keywords are not in their correct positions
in a DO, IF, or SELECT instruction. The keyword THEN is also recognized in
the body of an IF or WHEN clause. In other contexts, keywords are not reserved
and can be used as labels or as the names of variables (though this is generally
not recommended).
Subkeywords are reserved within the clauses of
individual instructions. For example, the symbols VALUE and WITH are subkeywords
in the ADDRESS and PARSE instructions, respectively. For details, see
Chapter 16, Reserved Keywords.
Whitespace characters (blanks or horizontal tabs) adjacent to keywords
separate the keyword from the subsequent token. One or more whitespace
characters following VALUE are required to separate the
expression from the subkeyword in the example following:
However, no whitespace character is required after the VALUE subkeyword in
the following example, although it would improve readability:
ADDRESS VALUE"ENVIR"||number