Operators must be defined on values of specific types. For instance,
+ is defined on numbers, but not on structures. Operators are
often defined on groups of types. For the purposes of Modula-2, the
following definitions hold:
Integral types consist of INTEGER, CARDINAL, and
their subranges.
Character types consist of CHAR and its subranges.
Floating-point types consist of REAL.
Pointer types consist of anything declared as POINTER TO type.
Scalar types consist of all of the above.
Set types consist of SET and BITSET types.
Boolean types consist of BOOLEAN.
The following operators are supported, and appear in order of
increasing precedence:
,
Function argument or array index separator.
:=
Assignment. The value of var:=value is
value.
<, >
Less than, greater than on integral, floating-point, or enumerated
types.
<=, >=
Less than or equal to, greater than or equal to
on integral, floating-point and enumerated types, or set inclusion on
set types. Same precedence as <.
=, <>, #
Equality and two ways of expressing inequality, valid on scalar types.
Same precedence as <. In GDB scripts, only <> is
available for inequality, since # conflicts with the script
comment character.
IN
Set membership. Defined on set types and the types of their members.
Same precedence as <.
OR
Boolean disjunction. Defined on boolean types.
AND, &
Boolean conjunction. Defined on boolean types.
@
The GDB ``artificial array'' operator (see Expressions).
+, -
Addition and subtraction on integral and floating-point types, or union
and difference on set types.
*
Multiplication on integral and floating-point types, or set intersection
on set types.
/
Division on floating-point types, or symmetric set difference on set
types. Same precedence as *.
DIV, MOD
Integer division and remainder. Defined on integral types. Same
precedence as *.
-
Negative. Defined on INTEGER and REAL data.
^
Pointer dereferencing. Defined on pointer types.
NOT
Boolean negation. Defined on boolean types. Same precedence as
^.
.
RECORD field selector. Defined on RECORD data. Same
precedence as ^.
[]
Array indexing. Defined on ARRAY data. Same precedence as ^.
()
Procedure argument list. Defined on PROCEDURE objects. Same precedence
as ^.
::, .
GDB and Modula-2 scope operators.
Warning: Sets and their operations are not yet supported, so GDB
treats the use of the operator IN, or the use of operators
+, -, *, /, =, , <>, #,
<=, and >= on sets as an error.