字類条件

字類条件は、作用対象が数字かどうか、または英字かどうかを判別する。

ANS85 さらに、小文字の英字かどうか、大文字の英字であるか、または環環境部の特殊名段落で定義されている CLASS 句で指定された文字集合の文字のみが含まれるかどうかを判別する。

一般形式


*

構文規則

  1. 作用対象の字類は、次のように判別される。
    1. 含まれるすべての文字が、0、1、2、3、... 9 である場合、作用対象は数字である。この場合、演算符号の有無は問わない。
    2. 含まれるすべての文字が、大文字の A、B、C、... Z、スペース、

      ANS85 または小文字の a、b、c、... z、スペース、

      または大文字

      ANS85 と小文字

      および空白の任意の組み合わせから構成される場合、作用対象は英字である。

    3. ANS85 含まれるすべての文字が小文字の a、b、c、... z およびスペースである場合、作用対象は小文字の英字である。
    4. ANS85 含まれるすべての文字が大文字の A、B、C、... Z およびスペースである場合、作用対象は大文字の英字である。
    5. ANS85 含まれるすべての文字が特殊名段落内の class-name-1 の定義にリストされている文字である場合、作用対象は class-name-1 に一致する。
  2. identifier-1 は、用途に明示的または暗黙的に DISPLAY が指定されているデータ項目を参照する必要がある。NUMERIC かどうかを判別する場合、用途は次のいずれかとする。DISPLAY、

    MF COMPUTATIONAL、COMPUTATIONAL-X、

    OSVSVSC2MFXOPEN COMPUTATIONAL-3

    MFXOPEN COMPUTATIONAL-5

    ANS85 または PACKED-DECIMAL

  3. ANS85 identifier-1 が関数一意名である場合は、英数字関数

    MF または各国文字関数

    を参照する必要がある。

一般規則

  1. 字類条件が語 NOT を含まず、identifier-1 が長さゼロの集団項目である場合、字類検査の結果は常に偽となる。

    NOT を含む場合、NOT およびそれに続く必要語は、真理値を導くための字類検査を定義する単一の字類条件を指定する。たとえば NOT NUMERIC は、作用対象が文字かどうか判別する真偽検査である。字類条件が語 NOT を含み、identifier-1 が長さゼロの集団項目である場合、字類検査の結果は常に真となる。

    MF  長さゼロの集団項目を含む字類検査の真理値は、ZEROLENGTHFALSE コンパイラ指令によって反転される。

  2. NUMERIC 検査は、データ記述で英字として記述されている項目、またはデータ記述で演算符号が指定されている基本項目で構成される集団項目として記述されている項目に対しては使用できない。検査対象の項目のデータ記述で演算符号が指定されていない場合、その内容が数字でかつ演算符号が含まれない場合にのみ、そのデータ項目は数字項目であると判別される。検査対象の基本項目のデータ記述で演算符号が指定されている場合、その内容が数字でかつ有効な演算符号が含まれる場合にのみ、そのデータ項目は数字項目であると判別される。SIGN IS SEPARATE 句を用いて記述されているデータ項目の有効な演算符号は、標準データ形式文字の「+」および「-」である。SIGN IS SEPARATE 句を用いて記述されていないデータ項目の有効な演算符号については、「COBOL 言語の概念」の章の「文字の表現および基数の選定」セクションを参照。

    OSVSMF NUMERIC 検査は、データ記述で演算符号が指定されている基本項目で構成される集団項目として定義されている項目に対して使用できる。

  3. ALPHABETIC 検査は、データ記述で数字として記述されている項目に対しては使用できない。検査対象のデータ項目が英字であると判定されるのは、その内容が大文字の英字「A」から「Z」とスペースの任意の組み合わせ、 

    ANS85 および小文字の英字「a」から「z」

    とスペースの任意の組み合わせで構成されている場合のみである。

    OSVSVSC2MF 外部浮動小数点数項目 (USAGE DISPLAY) および内部浮動小数点数項目 (USAGE COMP-1 および USAGE COMP-2) には字類条件を使用できない。

  4. ANS85 ALPHABETIC-LOWER 検査は、データ記述で数字として記述されている項目に対しては使用できない。その検査の結果は、identifier-1 が参照するデータ項目の内容が、すべて小文字の英字「a」から「z」およびスペースで構成されている場合に真となる。
  5. ANS85 ALPHABETIC-UPPER 検査は、データ記述で数字として記述されている項目に対しては使用できない。その検査の結果は、identifier-1 が参照するデータ項目の内容が、すべて大文字の英字「A」から「Z」およびスペースで構成されている場合に真となる。
  6. MF class-name-1 検査は、データ記述で数字として記述されている項目に対しては使用できない。