ISO2002ENTMF 

EVALUATE 指令

EVALUATE 指令は、コンパイル グループに含めるソース行の評価方法を提供します。

注: このセクションでは、コンパイラ指令文 DEFINE、EVALUATE、および IF は、ISO2002用語の指令を使用して言及されます。DEFINE コンパイラ オプションに言及する際は、そのように明示的に言及されます。

一般形式 1

一般形式 2

MF 

一般形式 3

すべての書き方の構文規則

  1. 規則の説明全体にわたる事項:
    • operand-1 は、形式 1 では literal-1 または arithmetic-expression-1 を、形式 2 および 3 では TRUE または FALSE キーワードを参照します。
    • operand-2 は、形式 1 では literal-2 または arithmetic-expression-2 を、形式 2 および形式 3 では constant-conditional-expression-1 を参照します。
    • operand-3 は、形式 1 で literal-3 または arithmetic-expression-3 を参照します。
  2. キーワード >>EVALUATE。>>WHEN、>>WHEN OTHER、および >>END-EVALUATE は、領域 A または領域 B のいずれかの新しい行で開始する必要があり、また、その行にすべて収まるように指定する必要があります。
  3. 識別子 text-1 および text-2:
    • 新しい行で開始する必要があり、複数行の構成が可能です。
    • コンパイラ指令を含むあらゆる種類のソース行が対象となりえます。
    • COPY 文も含まれる場合があります。
    • 特定の EVALUATE 指令の指定は、すべてを同じライブラリ テキストで、またはすべてをソース テキストで指定する必要があります。この規則の目的上、text-1 および text-2 は EVALUATE 指令の指定とは見なされません。
  4. text-1 または text-2 で指定された入れ子の EVALUATE 指令は、新しい EVALUATE 指令と見なされます。

書き方 1 の構文規則

  1. EVALUATE 指令のすべての作用対象が同じ項類であることが必要です (算術式の項類は数値であると見なされます)。
  2. THROUGH と THRU は同等です。
  3. THROUGH または THRU が指定されている場合、選択された項目のすべてが数値の項類であることが必要です。
  4. arithmetic-expression-1、arithmetic-expression-2、および arithmetic-expression-3 は、「付録 E - コンパイル時算術式」に記載されている規則に従って構成される必要があります。

書き方 2 および 3 の構文規則

  1. constant-conditional-expression-1 は、「付録 B - 定数条件式」に記載されている規則に従って構成される必要があります。

すべての書き方に関する一般規則

  1. text-1 および text-2 は、EVALUATE 指令行の一部ではありません。
  2. EVALUATE 文の最初の真の分岐にある text-1 および text-2 は、COPY 文および REPLACE 文のように、照合規則および置換規則の対象となります。
  3. 文が、真 (EVALUATE FALSE 構文の場合は偽) を評価する一切の WHEN 指定なしに END-EVALUATE キーワードに達する場合、または WHEN OTHER が指定されていない場合、WHEN 指定に関連付けられた text-1 のすべての行が結果から除外されます。

書き方 1 の一般規則

  1. 各 WHEN で指定された値に従った選択を比較すると、次のようになります。
    • THROUGH が指定されていない場合、選択対象が operand-2 と等しい場合に TRUE の結果が返されます。
    • THROUGH を指定した場合、選択対象が operand-2 以上かつ operand-3 以下である場合に TRUE の結果が返されます。
    • WHEN 指定が TRUE と評価された場合、その WHEN 指定に関連付けられた text-1 の行が結果のテキストに含まれます。EVALUATE 指令内の他の text-1 の行および text-2 の行はすべて除外されます。
    • TRUE と評価される WHEN 指定がない場合、WHEN OTHER 指定に関連付けられた text-2 のすべての行 (指定されている場合) が結果のテキストに含まれます。EVALUATE 指令内の text-1 の行はすべて除外されます。
    • literal-1 が英数字の場合、各文字のエンコードの 2 進表記に基づいて、等しいかどうかが文字ごとに比較されます。リテラルの長さが異なる場合、それらは等しくありません。

書き方 2 の一般規則

  1. 各 WHEN 指定に対して、constant-conditional-expression-1 が「付録 B - 定数条件式」に記載されている規則に従って評価されます。
  2. WHEN 指定が TRUE と評価される場合、その WHEN 指定に関連付けられた text-1 の行が結果のテキストに含まれます。EVALUATE 指令内の他の text-1 の行および text-2 の行はすべて除外されます。
  3. TRUE と評価される WHEN 指定がない場合、WHEN OTHER 指定に関連付けられた text-2 のすべての行 (指定されている場合) が結果のテキストに含まれます。EVALUATE 指令内の text-1 の行はすべて除外されます。
MF 

書き方 3 の一般規則

  1. 各 WHEN 指定に対して、constant-conditional-expression-1 が「付録 B - 定数条件式」に記載されている規則に従って評価されます。
  2. WHEN 指定が FALSE と評価される場合、その WHEN 指定に関連付けられた text-1 の行が結果のテキストに含まれます。EVALUATE 指令内の他の text-1 の行および text-2 の行はすべて除外されます。
  3. FALSE と評価される WHEN 指定がない場合、WHEN OTHER 指定に関連付けられた text-2 のすべての行 (指定されている場合) が結果のテキストに含まれます。EVALUATE 指令内の text-1 の行はすべて除外されます。