Rational Developer for System z
COBOL for Windows バージョン 7.5 言語解説書


表意定数

表意定数 とは、特定の定数値に名前を付け、それを参照する場合に使用する予約語です。 表意定数の予約語とその意味は、次のとおりです。

ZERO、 ZEROS、ZEROES
文脈に応じて、数値ゼロ (0) か、英数字ゼロの 1 つ以上のオカレンスを表します。

英数字を指定する必要がある文脈で表意定数 ZERO、ZEROS、または ZEROES を使用すると、英数字ゼロが使用されます。国別文字ゼロを指定する必要がある文脈では、国別文字ゼロ (値 NX'0030') が使用されます。文脈が判別できない場合は、英数字ゼロが使用されます。

SPACESPACES
1 つ以上のブランクまたはスペースを表します。 SPACE は、英数字を指定する必要がある文脈で使用された場合には英数字リテラルとして扱われ、DBCS 文字を指定する必要がある文脈で使用された場合には DBCS リテラルとして扱われます。また、国別文字を指定する必要がある文脈で使用された場合には、国別リテラルとして扱われます。
HIGH-VALUEHIGH-VALUES
使用されている照合シーケンスにおいて最も高い順位にある文字の 1 つ以上のオカレンスを表します。

HIGH-VALUE は、英数字を必要とする文脈内では英数字リテラルとして扱われます。EBCDIC 照合シーケンスの英数字データでは、値は X'FF' です。その他の英数字データでは、値はロケールで指定された照合シーケンスによって異なります。ロケールの詳細については、付録G. ロケールの考慮事項を参照してください。

HIGH-VALUE は、国別文字を必要とする文脈で使用された場合には、国別リテラルとして扱われます。値は、国別文字の NX'FFFF' です。国別リテラルを指定する必要がある文脈では、NCOLLSEQ(BIN) コンパイラー・オプションが 有効になっている場合のみ、HIGH-VALUE を使用できます。

文脈を判別できない場合は英数字文脈と見なされ、値の X'FF' が使用されます。

使用上の注意: あるデータ表現と別の表現との間の変換が行われることになる方法では、HIGH-VALUE (または HIGH-VALUE から割り当てられた値) は使用しないでください。X'FF' は有効な EBCDIC 文字または ASCII 文字を表しません。また、NX'FFFF' は有効な国別文字を表しません。英数字または国別の HIGH-VALUE 表現をもう一方の表現に変換すると、置換文字が使用されるようになります。例えば、X'FF' を UTF-16 へ変換すると、NX'FFFF' ではなく、1 つの置換文字が使用されます。

LOW-VALUELOW-VALUES
使用されている照合シーケンスにおいて最も低い順位にある文字の 1 つ以上のオカレンスを表します。

LOW-VALUE は、英数字を必要とする文脈内では英数字リテラルとして扱われます。EBCDIC 照合シーケンスの英数字データでは、値は X'00' です。その他の英数字データでは、値はロケールで指定された照合シーケンスによって異なります。ロケールの詳細については、付録G. ロケールの考慮事項を参照してください。

LOW-VALUE は、国別文字を必要とする文脈で使用された場合には、国別リテラルとして扱われます。値は、国別文字の NX'0000' です。国別リテラルを指定する必要がある文脈では、NCOLLSEQ(BIN) コンパイラー・オプションが 有効になっている場合のみ、LOW-VALUE を使用できます。

文脈を判別できない場合は、英数字文脈と見なされ、値の X'00' が使用されます。

QUOTEQUOTES
以下の 1 つ以上のオカレンスを表します。

QUOTE または QUOTES は、英数字を指定する必要がある文脈で使用された場合には英数字を表し、国別文字を指定する必要がある文脈で使用された場合には国別文字を表します。引用符の国別文字値は NX'0022' です。アポストロフィの国別文字値は NX'0027' です。

英数字リテラルを囲むのに、QUOTE および QUOTES を引用符またはアポストロフィの代わりに使用することはできません。

ALL リテラル
リテラル は、英数字リテラル、 DBCS リテラル、国別リテラル、または ALL リテラル以外の表意定数です。

リテラル が表意定数でない場合、ALL リテラル はそのリテラルを構成する文字ストリングの 1 つまたは複数のオカレンスを表します。

リテラル が表意定数の場合、ワード ALL は意味を持たず、読みやすさの目的でのみ使用されます。

CALL、INSPECT、INVOKE、STOP、または STRING の各ステートメントでは、表意定数 ALL リテラル を使用することはできません。

シンボリック文字
SPECIAL-NAMES 段落の SYMBOLIC CHARACTERS 文節で、シンボリック文字 の値として指定された 1 つ以上の文字を表します。

シンボリック文字 は常に英数字を表し、英数字から国別文字への暗黙の変換が定義されている場合にのみ、 国別文字を指定する必要がある文脈で使用できます。(例えば、受け取り項目が国別クラスの項目である MOVE ステートメントでは、国別文字を使用できます。これは、送り出し項目が英数字であり、受け取り項目が国別である場合は暗黙の変換が定義されるからです。)

コンパイル時のロケール設定にマルチバイト・コード・ページが指定されている場合、SYMBOLIC CHARACTERS 文節は指定できません。ロケールの詳細については、付録G. ロケールの考慮事項を参照してください。

NULLNULLS
USAGE POINTER、USAGE PROCEDURE-POINTER、USAGE FUNCTION-POINTER、USAGE OBJECT REFERENCE、あるいは有効なアドレスを持たない特殊レジスターの ADDRESS OF で定義されるデータ項目を示すために使用される値を表します。 NULL は、構文フォーマットで明示的に許可されている場所でだけ使用することができます。 NULL の値は 0 です。

NULL、ZERO、SPACE、HIGH-VALUE、LOW-VALUE、 および QUOTE の単数形と複数形は同義で使用できます。例えば、DATA-NAME-1 が 5 文字のデータ項目の場合は、次の各ステートメントによって 5 つのスペースが DATA-NAME-1 に移動されます。

MOVE SPACE       TO  DATA-NAME-1
MOVE SPACES      TO  DATA-NAME-1
MOVE ALL SPACES  TO  DATA-NAME-1

COBOL の規則によって表意定数名の特定のスペルが許可されているときは、その表意定数名について任意の代替スペルを指定することができます。

リテラル が構文図で現れている場所では、明示的に禁止されているところを除いて、どこでも表意定数を使用することができます。構文図の中で数字リテラルが現れるときは、 表意定数 ZERO (ZEROS または ZEROES) だけを使用することができます。表意定数は、関数の引数として機能する算術式の中以外では、 関数の引数として使用できません。

表意定数の長さは、使用される文脈によって異なります。次の規則が適用されます。


ご利用条件 | フィードバック

Copyright IBM Corporation 1996, 2008.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)