[ < ]  [ > ]  [ << ]  [ Up ]  [ >> ]  [Top]  [Contents]  [Index]  [ ? ] 
12.4.5.1 Operators
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 Modula2, the
following definitions hold:

Integral types consist of
INTEGER
,CARDINAL
, and their subranges. 
Character types consist of
CHAR
and its subranges. 
Floatingpoint 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
andBITSET
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, floatingpoint, or enumerated types.

<=, >=
Less than or equal to, greater than or equal to on integral, floatingpoint 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 No value for GDBN 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 No value for GDBN “artificial array” operator (see section Expressions).

+, 
Addition and subtraction on integral and floatingpoint types, or union and difference on set types.

*
Multiplication on integral and floatingpoint types, or set intersection on set types.

/
Division on floatingpoint 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
andREAL
data.
^
Pointer dereferencing. Defined on pointer types.

NOT
Boolean negation. Defined on boolean types. Same precedence as
^
.
.
RECORD
field selector. Defined onRECORD
data. Same precedence as^
.
[]
Array indexing. Defined on
ARRAY
data. Same precedence as^
.
()
Procedure argument list. Defined on
PROCEDURE
objects. Same precedence as^
.
::, .
No value for GDBN and Modula2 scope operators.
Warning: Set expressions and their operations are not yet supported, so No value for GDBN treats the use of the operator
IN
, or the use of operators+
,
,*
,/
,=
, ,<>
,#
,<=
, and>=
on sets as an error.
[ < ]  [ > ]  [ << ]  [ Up ]  [ >> ]  [Top]  [Contents]  [Index]  [ ? ] 