ISO2002ENTMF 

DEFINE 指令

DEFINE 指令は、条件付きコンパイル指令 DEFINE、EVALUATE、および IF とともに使用されるコンパイル変数を定義または未定義にします。コンパイル変数は、それが現在表すリテラル値へのシンボル参照として扱われます。

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

一般形式

構文規則

  1. DEFINE 指令は、領域 A または領域 B の いずれかの新しい行で開始する必要があり、また、1 行にすべて収まるように指定する必要があります。
  2. literal-1 は、次のいずれかとします。
    • 通常の英数字リテラル (たとえば、'abcd')、または 16 進リテラル (たとえば、x'F1F2F3') として指定された英数字リテラル。各国文字リテラル、DBCS リテラル、および null 終了英数字リテラル (Z リテラル) はサポートされていません。
    • 整数リテラル。
    • B'0’ または B'1’ のブール リテラル。
  3. arithmetic-expression-1 は、「付録 E - コンパイル時算術式」で説明されている算術式の規則に従って形成される必要があります。
  4. DEFINE 指令で OFF または OVERRIDE を指定しない場合、次のいずれかの条件に該当する必要があります。
    • compilation-variable-name-1 が、同じコンパイル グループで以前に宣言されていないこと。
    • compilation-variable-name-1 を参照する、以前のすべての DEFINE 指令に OFF が指定されていること。
    • compilation-variable-name-1 を参照する、以前のすべての DEFINE 指令に同じ値が指定されていること。

一般規則

  1. DEFINE 指令は、別の条件付きコンパイルの対象である場合には処理されず、その結果、除外されます。
  2. compilation-variable-name-1 を定義し、OFF 指定を含まない DEFINE 指令に続くテキストでは、名前に関連する項類のリテラルを使用できる箇所であればどこでも、定義済み条件およびブール条件を含み、compilation-variable-name-1 を条件付きコンパイル指令内に使用できます。
  3. compilation-variable-name-1 を OFF で指定する DEFINE 指令に続くテキストでは、compilation-variable-name-1 が OFF を指定しない後続の DEFINE 指令で再定義されない限り、compilation-variable-name-1 は定義済み条件にのみ使用できます。
  4. OVERRIDE が指定されると、指定した作用対象の値を参照するよう、無条件に compilation-variable-name-1 が設定されます。
  5. AS PARAMETER が指定される場合、compilation-variable-name-1 の DEFINE コンパイラ オプション (「DEFINE」を参照) が有効であれば、compilation-variable-name-1 によって参照される値がそのオプションから得られます。compilation-variable-name-1 に対して有効な DEFINE コンパイラ オプションがない場合、compilation-variable-name-1 は定義されません。
  6. arithmetic-expression-1 が指定される場合、「付録 E - コンパイル時算術式」に従って評価され、結果の値が compilation-variable-name-1 から参照されます。
  7. literal-1 が指定される場合、compilation-variable-name-1 は literal-1 を参照します。