次: , 前: Modula-2, 上: Modula-2


9.4.2.1 Modula-2演算子

演算子は、 特定の型の値に対して定義されなければなりません。 例えば、 +は数値に対して定義され、 構造体に対しては定義されません。 演算子は、 型のグループに対して定義されることがよくあります。 Modula-2においては、 以下の定義が有効です。

以下の演算子がサポートされています。 ここでは、 優先順位の低いものから順に並べています。

,
関数の引数の区切り記号、 または、 配列のインデックスの区切り記号です。
:=
代入です。 var := valueの値は valueです。
<>
未満、 超過です。 整数型、 浮動小数点型、 列挙型に対して定義されています。
<=>=
整数型、 浮動小数点型、 列挙型に対しては、 以下、 以上を表わします。 集合型に対しては、 集合の包含関係を表わします。 <と同一の優先順位を持ちます。
=<>#
スカラ型に対して定義されている等価および2種類の不等価です。 <と同一の優先順位を持ちます。 GDBスクリプトの中では、 #がスクリプトのコメント記号でもあるため、 不等価としては<>だけが使用可能です。
IN
集合のメンバを表わします。 集合型、 およびそのメンバの型に対して定義されています。 <と同一の優先順位を持ちます。
OR
ブール型のOR (disjunction) です。 ブール型に対して定義されています。
AND&
ブール型のAND (conjunction) です。 ブール型に対して定義されています。
@
GDBの「人工配列」演算子です (see Expressions)。
+-
整数型、 浮動小数点型に対しては、 加算、 減算を表わします。 集合型に対しては、 和集合 (union)、 差集合 (difference) を表わします。
*
整数型、 浮動小数点型に対しては、 乗算を表わします。 集合型に対しては、 積集合 (intersection) を表わします。
/
浮動小数点型に対しては、 除算を表わします。 集合型に対しては、 対称的差集合 (symmetric difference) を表わします。 *と同一の優先順位を持ちます。
DIVMOD
整数型の除算における商と剰余を表わします。 整数型に対して定義されています。 *と同一の優先順位を持ちます。
-
マイナス(負)です。 INTEGERREAL型のデータに対して定義されています。
^
ポインタの間接参照です。 ポインタ型に対して定義されています。
NOT
ブール型のNOTです。 ブール型に対して定義されています。 ^と同一の優先順位を持ちます。
.
RECORDフィールドの区切り記号です。 RECORDデータに対して定義されます。 ^と同一の優先順位を持ちます。
[]
配列のインデックスを指定します。 ARRAY型のデータに対して定義されています。 ^と同一の優先順位を持ちます。
()
プロシージャの引数リストを指定します。 PROCEDUREオブジェクトに対して定義されています。 ^と同一の優先順位を持ちます。
::.
GDBおよびModula-2のスコープ指定演算子です。
注意: 集合、 および集合に対する操作は、 まだサポートされていません。 このため、 GDBはIN演算子、 あるいは、 集合に対して+-*/=<>#<=>=のいずれかの演算子が使用された場合、 これをエラーとして扱います。