GROUP-USAGE 句

BIT 指定を持つ GROUP-USAGE 句は、記述項の左辺によって定義される集団項目を、用途がビットで項類がブールの基本項目として扱うよう指定する。別途指定される場合は、この限りではない。

NATIONAL 指定を持つ GROUP-USAGE 句は、記述項の左辺によって定義される集団項目を、用途が各国文字で項類が各国文字の基本項目として扱うよう指定する。別途指定される場合は、この限りではない。

ENTMF UTF-81 指定を持つ GROUP-USAGE 句は、定義された集団項目が UTF-8 集団項目であることを指定する。集団および従属する集団内のデータ項目はすべて UTF-8 項目となる。

一般形式

構文規則

  1. GROUP-USAGE 句は、記述項の左辺が厳密に型付けされていない集団項目の場合にのみ指定できる。
  2. BIT 指定の場合、記述項の左辺に USAGE BIT が暗黙的に指定される。USAGE 句は記述項の左辺には指定できない。記述項の左辺に従属する基本項目はすべて、明示的または暗黙的に、用途はビット、字類および項類はブールとして記述する必要がある。従属する集団項目はすべて、明示的または暗黙的に、GROUP-USAGE BIT として記述する必要がある。

    集団で使用できる最大文字数は 64 文字である。

  3. NATIONAL 指定の場合、記述項の左辺に USAGE NATIONAL が暗黙的に指定される。USAGE 句は記述項の左辺には指定できない。記述項の左辺に従属する基本項目はすべて、明示的または暗黙的に、用途は各国文字として記述する必要がある。符号付き数値データ項目はいずれも、SIGN IS SEPARATE 句で記述する必要がある。従属する集団項目はすべて、明示的または暗黙的に、GROUP-USAGE NATIONAL として記述する必要がある。
  4. ENTMF UTF-8 指定の場合、記述項の左辺に USAGE UTF-8 が暗黙的に指定される。USAGE 句は記述項の左辺には指定できない。記述項の左辺に従属するすべての基本項目は、明示的または暗黙的に用途は UTF-8 として記述するものとし、BYTE-LENGTH 句で定義する必要がある。

一般規則

  1. BIT 指定の場合:
    • 記述項の左辺がビット集団およびビット データ項目の場合、字類および項類はブールになる。
    • 特に指定がない限り、ビット集団は用途がビットで字類および項類がブールである基本データ項目のように扱われる。記述は PICTURE 1(m) (m は集団のビット長) となる。
    • ビット集団に含まれるデータ項目は、「ビット データ項目の整列」に記載された規則に従って記憶域に割り当てられる。
  2. NATIONAL 指定の場合:
    • 記述項の左辺が各国文字集団の場合、その字類および項類は各国文字になる。
    • 特に指定がない限り、各国文字集団は用途が各国文字で字類および項類が各国文字である基本データ項目のように扱われる。記述は PICTURE N(n) (n は集団の長さ) となる。
      注: GROUP-USAGE NATIONAL 句は、各国文字のみを含む集団において各国文字の切り捨ておよび空白詰めが適切に行われるようにするため、かつ、INSPECT などの処理で正しく処理されるようにするために必要である。GROUP-USAGE NATIONAL 句がないと、そのような集団項目の内容は項類が英数字として扱われ、データが破損したり、不適切に処理されたりする原因になる。
  3. ENTMF UTF-8 指定の場合:
    • 記述項の左辺が UTF-8 集団の場合、その字類および項類は UTF-8 になる。
    • GROUP-USAGE UTF-8 句を明示的に指定していないすべての従属する集団に対して、GROUP-USAGE UTF-8 句が暗黙的に指定される。
    • JUSTIFIED 句は指定できない。
    • 特に指定がない限り、UTF-8 集団項目は、用途が UTF-8 で字類および項類が UTF-8 である基本データ項目のように扱われ、PICTURE U BYTE-LENGTH n (n はバイト単位での集団の長さ) で定義される。
  4. 厳密に型付けされていない集団項目に GROUP-USAGE 句が明示的にも暗黙的にも指定されていない場合、その集団項目は英数字の集団項目になる。

    ENTMF このような集団内の UTF-8 データ項目はすべて英数字として扱われ、UTF-8 データの無効な切り捨てや誤った処理が発生する可能性がある。GROUP-USAGE UTF-8 として定義された集団の場合、コンパイラは MOVE などの文中で集団項目の切り捨ておよび埋め込みを正しく処理できる。

1 字類 UTF-8 の項目はネイティブ COBOL でのみサポートされる