+----------------------------------IBM 拡張----------------------------------+


型なしリテラル定数

XL Fortran では、型なし定数は組み込み型を持ちません。 16 進数、8 進数、2 進数、およびホレリス定数は、 組み込みリテラル定数を使用する場合ならどのような状況においても使用できます。 ただし、これらの定数は型宣言ステートメントでの長さ指定には使用できません (型なしの定数は、CHARACTER 型宣言 ステートメントの type_param_value では使用できます)。 16 進、8 進、2 進の各定数で認識される桁数は、 その定数が使用されるコンテキストによって異なります。

16 進定数

16 進定数の形式は、次のとおりです。



>>-+-+-X-+--+-'--hexadecimal_number--'-+-+---------------------><
   | '-Z-'  '-"--hexadecimal_number--"-' |
   +-+-'--hexadecimal_number--'-+--+-X-+-+
   | '-"--hexadecimal_number--"-'  '-Z-' |
   '-Z--hexadecimal_number---------------'
 
 

hexadecimal_number
数字 (0-9) と 文字 (A-Fa-f) で構成されるストリングです。 対応する大文字と小文字は等しく扱われます。

16 進定数の Znn...nn という形式は、 スラッシュで区切ってデータ初期化値としてのみ使用できます。 16 進定数のこの形式が PARAMETER 属性で 事前に定義した定数の名前と同じストリングである場合、XL Fortran は、 そのストリングを名前付き定数として認識します。

2x 個の 16 進数が存在する場合、x バイトで表されます。

XL Fortran による定数の解釈方法については、型なし定数の使用方法を参照してください。

16 進定数の例

Z'0123456789ABCDEF'
Z"FEDCBA9876543210
Z'0123456789aBcDeF'
Z0123456789aBcDeF   ! This form can only be used as an initialization value

8 進定数

8 進定数の形式は、次のとおりです。



>>-+-O--+-'--octal_number--'-+-+-------------------------------><
   |    '-"--octal_number--"-' |
   '-+-'--octal_number--'-+--O-'
     '-"--octal_number--"-'
 
 

octal_number
数字 (0-7) で構成されるストリングです。

8 進数の 1 桁は 3 ビットで、データ・オブジェクトは 8 ビットの 倍数なので、8 進定数のビット数がデータ・オブジェクトに 必要なビット数よりも大きくなる場合があります。 たとえば、INTEGER(2) データ・オブジェクトは、 最左端の桁が 0 または 1 の場合、6 桁の 8 進定数によって 表されます。INTEGER(4) データ・オブジェクトは、 最左端の桁が、0123 のいずれかで ある場合、11 桁の定数によって表されます。INTEGER(8) は、 最左端の桁が 0 または 1 の場合、22 桁の定数によって表されます。

XL Fortran による定数の解釈方法に ついては、型なし定数の使用方法を参照してください。

8 進定数の例

O'01234567'
"01234567"O

2 進定数

2 進定数の形式は、次のとおりです。



>>-+-B--+-'--binary_number--'-+-+------------------------------><
   |    '-"--binary_number--"-' |
   '-+-'--binary_number--'-+--B-'
     '-"--binary_number--"-'
 
 

binary_number
01 の数字で構成されるストリングです。

8x 個の 2 進数が存在する場合、x バイトで表されます。

XL Fortran による定数の解釈方法については、型なし定数の使用方法を参照してください。

2 進定数の例

B"10101010"
'10101010'B

ホレリス定数

ホレリス定数の形式は、次のとおりです。



>>-n--H--character_string--------------------------------------><
 
 

ホレリス定数は、nH に続く、 プロセッサーで表示可能な空ではない文字ストリングで構成されています。 ここでは、n は、H の後に続く文字の数を示す符号なしの 正の整数です。n には、kind 型付きパラメーターを指定することはできません。 ストリング中の文字数は、1 〜 255 文字になります。

注:
nH を指定し、n 個未満の 文字を n の後に指定すると、入力行を右マージンまで 拡張するために使用されるブランクがホレリス定数の一部と見なされます。 ホレリス定数は、継続行で継続することができます。 ホレリス定数には、n 個以上の文字を使用してください。

-qnoescape コンパイラー・オプションが指定されていない 場合は、XL Fortran は、ホレリス定数内のエスケープ・シーケンスも認識します。 ホレリス定数にエスケープ・シーケンスが含まれている 場合、n は、ソース・ストリング内の文字数ではなく、 そのストリングの内部表現での文字数を示します。 (たとえば、2H¥"¥" は、2 つの二重引用符を意味する ホレリス定数を表します。)

XL Fortran は、文字定数、ホレリス定数、H 編集記述子、 文字ストリング編集記述子、およびコメントの中のマルチバイト文字をサポートします。 このサポートは、-qmbcs オプションによって提供されます。 ストリング全体を保持するには小さすぎる変数にマルチバイト文字が 入っている定数を割り当てると、マルチバイト文字の内部で切り捨てが起こることがあります。

Unicode の文字およびファイル名もサポートします。 環境変数 LANGUNIVERSAL に 設定され、-qmbcs コンパイラー・オプションが指定されている場合、 コンパイラーは Unicode 文字およびファイル名の読み取りや書き込みを行うことができます。

XL Fortran による定数の解釈方法に ついては、型なし定数の使用方法を参照してください。

型なし定数の使用方法

型なし定数のデータ型と長さは、型なし定数を使用するコンテキストによって決まります。 XL Fortran では、それらが使用されて、コンテキストが認識されるまでデータ型と長さを変換しません。

式の中の型なし定数の例

INT=B'1'          ! Binary constant is default integer
RL4=X'1'          ! Hexadecimal constant is default real
INT=INT + O'1'    ! Octal constant is default integer
RL4=INT + B'1'    ! Binary constant is default integer
INT=RL4 + Z'1'    ! Hexadecimal constant is default real
ARRAY(O'1')=1.0   ! Octal constant is default integer
 
LOGICAL(8) LOG8
LOG8=B'1'         ! Binary constant is LOGICAL(8), LOG8 is .TRUE.

+------------------------------End of IBM 拡張-------------------------------+

IBM Copyright 2003