6.7.2 演算子

FDL及びMDLエディタで記述する式中に使用できる演算子について説明します。演算子の書式と意味を次に示します。二項演算子の結合規則はすべて左結合です。

表6-13 演算子一覧

名前書式結果型意味優先順位
|i_bool1 | i_bool2i_booli_bool1とi_bool2のどちらかがTRUEのときTRUEを,それ以外はFALSEを返す。7
&i_bool1 & i_bool2i_booli_bool1とi_bool2が共にTRUEのときTRUEを,それ以外はFALSEを返す。6
==i_num1 == i_num2i_booli_num1とi_num2が10進数の値として等しいときTRUEを,それ以外はFALSEを返す。5
i_string1 == i_string2
  1. 文字コード種別が同じ場合:
    長さ及びバイト内容が等しいときTRUEを,それ以外はFALSEを返す。
  2. 文字コード種別が異なる場合:
    i_string2をi_string1の文字コードに変換してから1を適用する。
i_stream1 == i_stream2長さとバイト内容が等しいときTRUEを,それ以外はFALSEを返す。
i_null1 == i_null2i_null1とi_null2が共にi_null型のときTRUEを,どちらか一方だけがi_null型のときFALSEを返す。
!=i_num1 != i_num2i_booli_num1とi_num2が10進数の値として等しいときFALSEを,それ以外はTRUEを返す。5
i_string1 != i_string2
  1. 文字コード種別が同じ場合:
    長さ及びバイト内容が等しいときFALSEを,それ以外はTRUEを返す。
  2. 文字コード種別が異なる場合:
    i_string2をi_string1の文字コードに変換してから1を適用する。
i_stream1 != i_stream2長さとバイト内容が等しいときFALSEを,それ以外はTRUEを返す。
i_null1 != i_null2i_null1とi_null2が共にi_null型のときFALSEを,どちらか一方だけがi_null型のときTRUEを返す。 
<i_num1 < i_num2i_booli_num1 < i_num2のときTRUEを,それ以外はFALSEを返す。5
<=i_num1 <= i_num2i_booli_num1 <= i_num2のときTRUEを,それ以外はFALSEを返す。5
>i_num1 > i_num2i_booli_num1 > i_num2のときTRUEを,それ以外はFALSEを返す。5
>=i_num1 >= i_num2i_booli_num1 >= i_num2のときTRUEを,それ以外はFALSEを返す。5
+i_num1 + i_ num2i_numi_num1にi_num2を加算した値を返す。4
-i_num1 - i_num2i_numi_num1からi_num2を減算した値を返す。4
*i_num1 * i_num2i_numi_num1にi_num2を乗算した値を返す。3
/i_num1 / i_num2i_numi_num1をi_num2で除算した値を返す。3
単項
+
+i_num1i_numi_num1に1を乗算した値を返す。2
単項
-
-i_num1i_numi_num1に-1を乗算した値を返す。2
!! i_booli_booli_boolがTRUEのときFALSEを,FALSEのときTRUEを返す。2
( )( any1 )any1の型any1の評価結果を返す(優先順位)。1
注※
優先順位とは,式中で演算子が複数使用されたときの優先順位を示します。

表中の書式の第1子と第2子を逆に指定することもできます。また,書式のi_num型の代わりに,i_string,i_stream,i_dtmも指定できます。この場合は,i_num型に変換してから演算子を適用します。変換の詳細は,「6.5.1 異なる属性型同士での変換」の「表6-11 異なる分類の属性の型同士での変換可否」を参照してください。ただし,「==」「!=」演算のi_string型同士や,i_stream型同士が適用される場合を除きます。