Keyword instructions
A keyword instruction is one or more clauses, where the first clause 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, symbols (words) in capitals denote keywords or sub-keywords; other words
(such as expression) denote a collection of tokens as defined previously.
However, the keywords and subkeywords are not case dependent; the symbols if
,
If
, and iF
all have the same effect. You can usually omit most of
the clause delimiters (;
) shown because they are implied by the end of a line.
=
character (implying an assignment) or a colon (implying a label). The keywords
ELSE, END, OTHERWISE, THEN, and WHEN are recognized in the same situation. Any clause that starts
with a keyword defined by REXX cannot be a command. Therefore, the following is an ARG keyword
instruction, not a command that starts with a call to the ARG built-in function.
arg(fred) rest
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).Certain other keywords, known as 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 the description of each instruction. For a general discussion on reserved keywords, see Reserved keywords.
ADDRESS VALUE expression
However, no blank is required
after the VALUE subkeyword in the following example, although it would add to the readability:
ADDRESS VALUE'ENVIR'||number