Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 言語解説書


形象定数

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

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

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

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

HIGH-VALUE は、英数字を必要とする文脈内では英数字リテラルとして扱われます。EBCDIC 照合シーケンスの英数字データでは、値は X'FF' です。その他の英数字データでは、値は有効になっている照合シーケンスによって異なります。

HIGH-VALUE は、国別文字を必要とする文脈で使用された場合には、国別リテラルとして扱われます。値は、国別文字の NX'FFFF' です。

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

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

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

LOW-VALUE は、英数字を必要とする文脈内では英数字リテラルとして扱われます。EBCDIC 照合シーケンスの英数字データでは、値は X'00' です。その他の英数字データでは、値は有効になっている照合シーケンスによって異なります。

LOW-VALUE は、国別文字を必要とする文脈で使用された場合には、国別リテラルとして扱われます。値は、国別文字の NX'0000' です。

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

QUOTEQUOTES
以下の 1 つ以上のオカレンスを表します。
  • 引用符文字 (")。ただし QUOTE コンパイラー・オプションが有効である場合
  • アポストロフィ文字 (')。ただし APOST コンパイラー・オプションが有効である場合

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 ステートメントでは、国別文字を使用できます。これは、送り出し項目が英数字であり、受け取り項目が国別である場合は暗黙の変換が定義されるからです。)

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) だけを使用することができます。 形象定数は、関数の引数として機能する算術式の中以外では、 関数の引数として使用できません。

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


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

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