キーワード命令

キーワード命令 は、命令を表すキーワードで最初の文節が始まる、1 つ以上の文節です。 制御の流れを左右するキーワード命令もあれば、プログラマーにサービスを提供するキーワード命令もあります。 DO などのキーワード命令には、ネストした命令を組み込むことができます。

構文図では、大文字のシンボル (ワード) はキーワードまたはサブキーワードを示します。一部のワード (expression など) は、以前に定義されたトークンのコレクションを示すものがあります。 ただし、キーワードおよびサブキーワードは大文字でも小文字でもかまいません。すなわち、ifIf、および iF といった記号は、いずれも同じ結果をもたらします。 また、行の終わりによって文節区切り文字 (;) が暗黙指定されるので、通常は、それらの文節区切り文字の大半は省略することができます。

文節および命令」で説明されているように、キーワード命令が認識されるのは、そのキーワードが文節内の最初のトークンであり、2 番目のトークンが = 文字 (割り当てを暗黙指定する) またはコロン (ラベルを暗黙指定する) で始まっていない場合のみです。 キーワード ELSE、END、OTHERWISE、 THEN、および WHEN は、同じ状況で認識されます。 REXX で定義されたキーワードで始まる文節は、コマンドではあり得ません。 したがって、次のコードは ARG キーワード命令であり、ARG 組み込み関数の呼び出しで始まるコマンドではありません。
arg(fred) rest
DO、IF、または SELECT の各命令内のキーワードの位置が正しくないと、構文エラーになります。 (キーワード THEN も、IF または WHEN 文節の本体部分として認識されます。) それ以外の文脈では、キーワードが予約されていないので、ラベルまたは変数の名前として キーワードを使用することができます (ただし、一般的には、この方法はお勧めできません)。

その他の特定のキーワードで、サブキーワードと呼ばれるものは、個々の命令の文節内で予約されています。 例えば、シンボルの VALUE および WITH は、それぞれ、ADDRESS 命令および PARSE 命令内のサブキーワードです。 詳細については、個々の命令の説明をお読みください。 予約済みキーワードの一般的な説明については、 予約済みキーワードを参照してください。

キーワードに隣接するブランクは、そのキーワードを後続のトークンから分離するためだけのものです。 下記の例では、expression をサブキーワードから離すために、 VALUE の後に 1 つまたは複数のブランクが必要です。
ADDRESS VALUE expression
ただし、下記の例では、VALUE サブキーワードの後にブランクは必要ありませんが、 ブランクを入れれば読みやすくはなります。
ADDRESS VALUE'ENVIR'||number