COBOL2002 言語 拡張仕様編

[目次][索引][前へ][次へ]

1.2.2 文字列(日本語機能)

文字列に日本語文字を使用できる。

<この項の構成>
(1) 利用者定義語
(2) 定数

(1) 利用者定義語

日本語文字を用いて,利用者が定義できる語には,次のものがある。

注※
UNIX COBOL2002では,使用できない。

日本語文字集合の英文字,数字,特殊文字は英数字文字集合の対応する英文字,数字,特殊文字と等価とみなされる。

-UniObjGenオプションを指定した場合,プログラム名およびメソッド名にUTF-8で多バイトとなる文字が含まれてはならない。また,-UniObjGenオプションの指定が前提であるLinux(x86) COBOL2002およびLinux(x64) COBOL2002では,プログラム名,クラス名,インタフェース名,利用者定義関数名,メソッド名,およびプロパティ名にUTF-8で多バイトとなる文字が含まれてはならない。-UniObjGenオプションについては,マニュアル「COBOL2002 ユーザーズガイド」またはマニュアル「COBOL2002 使用の手引 手引編」のUnicode機能を参照のこと。

(2) 定数

(a) 日本語文字定数

日本語文字定数は次に示す形式で表された1文字以上160文字以下の文字列である。

日本語文字定数の長さは,実行用プログラム中のその表現に適用される。

形式
[図データ]

構文規則
  1. 文字1は日本語文字集合の任意の文字とする。
  2. 文字1が引用符を表すならば,引用符の1文字を表すのに連続する2字の日本語文字集合の引用符を用いなければならない。

一般規則
  1. 実行用プログラム中の日本語文字定数の値は,文字1によって表される値とする。
  2. 日本語文字定数の項類は,日本語となる。
  3. 日本語文字定数を囲む分離符の引用符は,日本語文字定数の一部ではない。
(b) 16進日本語文字定数

16進日本語文字定数は,次に示す形式で表された長さが1文字以上160文字以下で4の倍数の文字列である。

形式
[図データ]

構文規則
  1. 文字1は16進数字の'0'〜'9','A'〜'F'の16種類である。
  2. 長さは160文字までで,4の倍数でなければならない。
  3. NXをVALUE句に指定する場合,文字1はPICTURE句で指定したサイズを超えてはならない。

一般規則
  1. 実行用プログラム中の16進日本語文字定数の値は,文字1によって表される値とする。
  2. すべての16進日本語文字定数の項類は,日本語となる。
  3. 16進日本語文字定数を囲む分離符の引用符は,16進日本語文字定数の一部ではない。
  4. -UniObjGenオプションを指定した場合,UTF-16のコード値はバイトオーダがリトルエンディアンであってもUTF-16BEで指定する。-UniObjGenオプションについては,マニュアル「COBOL2002 ユーザーズガイド」またはマニュアル「COBOL2002 使用の手引 手引編」のUnicode機能を参照のこと。
(c) 表意定数

次に示す表意定数を用いることができる。

表1-1 日本語機能の表意定数

予約語
[ALL] ZERO
[ALL] ZEROS
[ALL] ZEROES
数値ゼロ(0),または日本語文字集合の何文字かの文字ゼロ(0)を表す。
-UniObjGenオプションを指定した場合,UTF-16のFULLWIDTH DIGIT ZERO(X'FF10')を表す。
[ALL] SPACE
[ALL] SPACES
日本語文字集合の何文字かの空白を表す。
-UniObjGenオプションを指定した場合,UTF-16のIDEOGRAPHIC SPACE(X'3000')を表す。
[ALL] HIGH-VALUE
[ALL] HIGH-VALUES
特殊名段落の中で使用される場合を除いて,その計算機の文字の照合順序で最高の位置を占める日本語文字集合の文字の何文字かを表す。
[ALL] LOW-VALUE
[ALL] LOW-VALUES
特殊名段落の中で使用される場合を除いて,その計算機の文字の照合順序で最低の位置を占める日本語文字集合の文字の何文字かを表す。

注意
バイトオーダがリトルエンディアンの場合,ZERO(ZEROS,ZEROES)はX'10FF'を,SPACE (SPACES)はIDEOGRAPHIC SPACE(X'0030')を表す。Unicode機能のバイトオーダの指定方法については,マニュアル「COBOL2002 ユーザーズガイド」またはマニュアル「COBOL2002 使用の手引 手引編」のUnicode機能を参照のこと。