表意定数の値およびそれらを参照するために使用する予約語を以下に示す。
定数 | 説明 |
---|---|
ZERO、ZEROS、ZEROES | 値「0」を表す。文脈によっては 1 つ以上の「0」文字を表す。 |
SPACE、SPACES | コンピューターの文字集合の 1 つ以上の空白文字を表す。
各国文字の空白文字の値は NX'0020' である。UTF-8 の空白文字の値は UX'20' である。 |
HIGH-VALUE、HIGH-VALUES | プログラムの文字照合順序の最も高い文字を 1 つ以上表す(拡張 ASCII 文字集合では x"FF")。
HIGH-VALUE 各国文字リテラルが必要な場合は値 NX'FFFF' を使用する。HIGH-VALUE UTF-8 リテラルが必要な場合は UX'F48FBFBF' を使用する。これは Unicode コード ポイント U+10FFFF に対応する。 |
LOW-VALUE、LOW-VALUES | プログラムの文字照合順序の最も低い文字を 1 つ以上表す(拡張 ASCII 文字集合では x"00")。
LOW-VALUE UTF-8 リテラルが必要な場合は UX'00' を使用する。これは Unicode コード ポイント U+00 に対応する。 |
QUOTE、QUOTES | 1 つ以上の「"」文字を表す。ソース プログラムでは、文字リテラルを囲むための引用符の代わりに QUOTE または QUOTES を使用することはできない。したがって、「ABD」を表すために、QUOTE ABD QUOTE と記すのは誤りである。
各国文字の引用符の値は NX'0022'、アポストロフィの値は NX'0027' である。UTF-8 の引用符の値は UX'22'、アポストロフィの値は NX'27' である。 |
ALL リテラル | リテラルを構成する文字列の 1 つ以上の文字を表す。リテラルは文字リテラル、
各国文字リテラル、 UTF-8 リテラル、または ALL リテラル以外の表意定数のいずれかになる。 この文字リテラルおよび各国文字リテラルには、連結式も使用できる。 表意定数を指定する場合には ALL は不要であり、読みやすくするためにのみ用いる。 |
NULL、NULLS |
1 つ以上の未設定ポインター または手続きポインター を表す。 USAGE POINTER
または USAGE POINTER-32 または PROCEDURE-POINTER を持つデータ項目、および値が NULL であるデータ項目は、どのデータ項目 または手続き のアドレスも表さないことが保証される。 NULL 値は環境によって異なり、通常は各環境用の COBOL 以外の言語で使用される等しい値と一致する。 |
表意定数が 1 つ以上の文字を含む文字列を表す場合、その長さは文脈に応じて COBOL システムが決定する。その際、以下の規則が順に適用される。
DISPLAY 文の書き方 3 における表意定数の使用は、その一般規則で説明するとおり、特別な効果を持つ。
書き方にリテラルが示されている箇所では、任意の場所で表意定数を使用できる。ただし、リテラルが数値リテラルに限定されている箇所では、表意定数は ZERO (ZEROS、ZEROES) のみ使用できる。
表意定数の HIGH-VALUE(S) または LOW-VALUE(S) を使用する場合、各表意定数に関連付けられる実際の文字は、指定されているプログラムの文字照合順序によって決まる(「実行用計算機段落」および「特殊名段落」トピックを参照)。
表意定数を表す予約語は、それぞれが独立した文字列である。ただし、「ALL リテラル」は例外で、2 つの別々の文字列から構成される。
QUOTE/QUOTES 表意定数の値は、APOST および QUOTE 指令の影響を受ける。
長さが 2 桁以上ある表意定数の「ALL リテラル」を数字項目または数字編集項目に関係付けることは、ANSI'85 規格では廃要素に分類される。これは ANSI 規格の次の全面改訂時に削除される予定である。
この COBOL 処理系に組み込まれている方言は、この構文を全面的に使用できる。FLAGSTD 指令を使用すると、この構文の使用箇所をすべて検出できる。
廃要素の ALL リテラル構文は標準 COBOL 定義の一部であるが、X/Open の COBOL 言語定義からは明示的に除外されている。したがって、X/Open COBOL 準拠のソース プログラム内では、この構文は使用できない。