uCosminexus Interschema ユーザーズガイド

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

6.7.2 演算子

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

表6-13 演算子一覧

名前 書式 結果型 意味 優先順位
| i_bool1 | i_bool2 i_bool i_bool1とi_bool2のどちらかがTRUEのときTRUEを,それ以外はFALSEを返す。 7
& i_bool1 & i_bool2 i_bool i_bool1とi_bool2が共にTRUEのときTRUEを,それ以外はFALSEを返す。 6
== i_num1 == i_num2 i_bool i_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_null2 i_null1とi_null2が共にi_null型のときTRUEを,どちらか一方だけがi_null型のときFALSEを返す。
!= i_num1 != i_num2 i_bool i_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_null2 i_null1とi_null2が共にi_null型のときFALSEを,どちらか一方だけがi_null型のときTRUEを返す。  
< i_num1 < i_num2 i_bool i_num1 < i_num2のときTRUEを,それ以外はFALSEを返す。 5
<= i_num1 <= i_num2 i_bool i_num1 <= i_num2のときTRUEを,それ以外はFALSEを返す。 5
> i_num1 > i_num2 i_bool i_num1 > i_num2のときTRUEを,それ以外はFALSEを返す。 5
>= i_num1 >= i_num2 i_bool i_num1 >= i_num2のときTRUEを,それ以外はFALSEを返す。 5
+ i_num1 + i_ num2 i_num i_num1にi_num2を加算した値を返す。 4
- i_num1 - i_num2 i_num i_num1からi_num2を減算した値を返す。 4
* i_num1 * i_num2 i_num i_num1にi_num2を乗算した値を返す。 3
/ i_num1 / i_num2 i_num i_num1をi_num2で除算した値を返す。 3
単項
+
+i_num1 i_num i_num1に1を乗算した値を返す。 2
単項
-
-i_num1 i_num i_num1に-1を乗算した値を返す。 2
! ! i_bool i_bool i_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型同士が適用される場合を除きます。