リテラルは文字ストリングであり、 構成されている文字または表意定数の使用のいずれかによって、その値が指定されます (表意定数を参照してください)。 リテラルには、次の 5 つのタイプがあります。
+----------------------------------IBM 拡張----------------------------------+
+------------------------------End of IBM 拡張-------------------------------+
+----------------------------------IBM 拡張----------------------------------+
ブール・リテラルとは、左側を分離文字 B" で、右側を引用符の分離文字で区切る文字ストリングのことです。 この文字ストリングは文字 0 または 1 だけで構成されます。 ブール・リテラルの値は、囲んでいる分離文字を除いた文字そのものです。
+------------------------------End of IBM 拡張-------------------------------+
+----------------------------------IBM 拡張----------------------------------+
DBCS リテラルには、以下の形式があります。
形式 >>-G"--DBCS リテラル--"----------------------------------------><
形式 >>-N"--DBCS リテラル--"----------------------------------------><
一般に、非数字リテラルに関係する規則は、DBCS リテラルにもあてはまります。 ただし、DBCS リテラルの最大長は 2 バイト文字で 28 文字であり、これらは 2 行に渡って続けることはできません。
DBCS リテラルは、データ部で次のように指定できます。
DBCS リテラルは、手続き部で次のように指定できます。
DBCS リテラルは、非数字リテラルを使用できる個所ならどこでも指定できます。 ただし、次の個所でリテラルとして指定する場合は例外です。
+------------------------------End of IBM 拡張-------------------------------+
+----------------------------------IBM 拡張----------------------------------+
国別 16 進リテラルには、以下の形式があります。
形式 >>-NX"--16 進文字列--"-----------------------------------------><
16 進文字列は、汎用文字セットのバージョン 2 (UCS-2) つまりユニコード文字にマップされる、4 つの 16 進数字のグループから構成されます。
国別 16 進リテラルの最大長は 512 国別文字です。
国別 16 進リテラルは、以下の場所で指定できます。
国別 16 進リテラルが後に続く表意定数 SPACE/SPACES、ALL SPACE/SPACES、または ALL は、国別 16 進リテラルである可能性があります。 SPACE は単一バイトの UCS-2 スペース (NX"0020") です。
+------------------------------End of IBM 拡張-------------------------------+
非数字リテラルとは、引用符 (") で囲まれた文字ストリングであり、EBCDIC 文字セットで許容される任意の文字を含むことができます。 非数字リテラルの最大長は 256 文字です。
非数字リテラルは、引用符 (") で囲まなければなりません。
*APOST コンパイラー・オプションが有効な場合には、非数字リテラルをアポストロフィ (') で囲まなければなりません。
囲みの引用符 (またはアポストロフィ) は、プログラムをコンパイルするときにリテラルから除外されます。 引用符を非数字リテラルに組み込むには、2 個の引用符を連続して ("") 指定しなければなりません。
たとえば、
"THIS ISN""T WRONG"
+----------------------------------IBM 拡張----------------------------------+
アポストロフィ・リテラルでは、2 重アポストロフィ ('') が分離文字である場合は、単一のアポストロフィに変えられます。
たとえば、
'THIS ISN''T WRONG'
は、次のものを表します。
THIS ISN'T WRONG
+------------------------------End of IBM 拡張-------------------------------+
非数字リテラル内で使用される句読文字は、どれもリテラルの値の一部で す。
すべての非数字リテラルは英数字データのカテゴリーに入ります。 (データのカテゴリーについては データのクラスおよびカテゴリーで説明します。)
+----------------------------------IBM 拡張----------------------------------+
16 進数の表記を使用して 16 進非数字リテラルを構成することができます。
形式 >>-X"--16 進数--"----------------------------------------------><
16 進数値は、0 〜 9、a 〜 f、および A 〜 F のいずれかの範囲の文字から成ります。 16 進数は 2 桁で 1 文字を表しますから、16 進数は偶数ごとに指定しなければなりません。
16 進非数字リテラルの最大長は 512 桁です。
継続規則は、他の非数字リテラルに関するものと同じです。
コンパイラーは、16 進リテラルを通常の非数字リテラルに変換します。 16 進非数字リテラルは、非数字リテラルを使用できるところであればどこででも使用できます。
+------------------------------End of IBM 拡張-------------------------------+
+----------------------------------IBM 拡張----------------------------------+
混合リテラルは、1 バイト文字と 2 バイト文字を組み合わせた非数字リテラルです。 2 バイト文字の各ストリングは、シフトアウト制御文字 (16 進数の 0E) で開始し、 シフトイン制御文字 (16 進数の 0F) で終了させることによって範囲が限定され、単一バイト・データと区別されます。 制御文字は混合リテラルの長さに含まれます。 2 バイト文字ストリングは、2 つの制御文字だけから構成される場合もあります。
COBOL ステートメントは、マシン表示に依存することなく、混合リテラルを処理します。 バイト単位で動作するステートメント (たとえば、STRING および UNSTRING) は、 結果的に 1 バイト文字と 2 バイト文字の有効な混合文字ストリングとならない場合があります。 ステートメントが正しく使用されていることを確認するのは、ユーザーの責任です。
混合リテラルは、プログラムが PROCESS ステートメントの GRAPHIC オプションを使用してコンパイルされるような場合にのみ認識されます。 それ以外の場合には、単に非数字リテラルとして処理されます。
+------------------------------End of IBM 拡張-------------------------------+
+----------------------------------IBM 拡張----------------------------------+
非数値リテラルを以下の形式で、ヌル終了することができます。
形式 >>-Z"--+--------------+--"------------------------------------->< +-1 バイト文字-+ +-DBCS 文字----+ '-混合文字-----'
開始区切り文字で引用符が使用されている場合、それを終了区切り文字として使用する必要があります。同様に、開始区切り文字でアポストロフィが使用されている場合、それを終了区切り文字として使用する必要があります。
リテラルのコンテントは、1 バイトまたは 2 バイト文字、またはその両方を含むことができますが、値 X'00' を持つ 1 バイト文字を指定することはできません。 X'00' は、リテラルの最後に自動的に追加されるヌル文字です。その他の点では、リテラルのコンテントは混合リテラルと同じ規則と制約事項に従います。
リテラル・コンテントの 1 バイトまたは 2 バイト文字のストリングは、0 から 255 バイトの長さにすることができます。リテラルの実際の長さは、終了ヌル文字を含むため、最大長は 256 バイトになります。
ヌル終了非数値リテラルには、データ・クラスおよびカテゴリー英数字があります。ヌル終了非数値リテラルは、非数値リテラルを指定できるすべてのところで使用できますが、ヌル終了リテラルは、すべてのリテラル表意定数でサポートされるわけではありません。
ヌル終了リテラルを使用して、COBOL プログラムで外部または内部オブジェクトの名前 (プログラム名、ロケール名、ライブラリー名、プロシージャー名など) を指定しないでください。指定した場合、コンパイラーは終了ヌル文字を文字 "0" で置換し、重大度 20 のエラー・メッセージが発行され、ユーザーにこの置換が通知されます。
LENGTH 組み込み関数は、ヌル終了リテラルに適用された場合、終了ヌルを含まないそれより前のリテラル内のバイト数を戻します。(LENGTH 特殊レジスターは、リテラル・オペランドをサポートしません。)
+------------------------------End of IBM 拡張-------------------------------+
数字リテラルとは、数字 0 〜 9、符号文字 (+ または -)、および小数点の中から選択された文字で構成される文字ストリングのことです。 このリテラルに小数点のないものが、整数です。(本書では、形式の中で使用 される整数という語は、小数点を含まない数字リテラル を表します。
コンテキストによっては、このリテラルは、負の値を持つことを許されないか、またはゼロであることを許されません。 このような制約事項、および適用される可能性があるその他の制約事項については、形式の説明部分を参照してください)。 次の規則が適用されます。
+----------------------------------IBM 拡張----------------------------------+
+------------------------------End of IBM 拡張-------------------------------+
+----------------------------------IBM 拡張----------------------------------+
+------------------------------End of IBM 拡張-------------------------------+
数字リテラルの値は、リテラル内の文字によって表される代数的な量です。 標準のデータ・フォーマットの文字の数字リテラルの大きさは、ユーザーが指定する桁数と同じです。
すべての数字リテラルは、数字データのカテゴリーに入ります。 (データのカテゴリーについては データのクラスおよびカテゴリーで説明します。)
+----------------------------------IBM 拡張----------------------------------+
数字リテラルは、固定小数点数または浮動小数点数のいずれかにすることができます。 浮動小数点リテラル値の規則は次のとおりです。
形式 >>-+-----+--仮数 E--+-----+--指数------------------------------>< +- + -+ +- + -+ '- - -' '- - -'
浮動小数点リテラルは、クラスが数字で、カテゴリーが内部浮動小数点になります。一般的に浮動小数点リテラルは、10 進数値リテラルが使用できるところはどこでも使用できます。
+------------------------------End of IBM 拡張-------------------------------+