| [ < ] | [ > ] | [ << ] | [ 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 Modula-2, the
following definitions hold:
-
Integral types consist of
INTEGER,CARDINAL, and their subranges. -
Character types consist of
CHARand 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
SETandBITSETtypes. -
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 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 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
INTEGERandREALdata.-
^ Pointer dereferencing. Defined on pointer types.
-
NOT Boolean negation. Defined on boolean types. Same precedence as
^.-
. RECORDfield selector. Defined onRECORDdata. Same precedence as^.-
[] Array indexing. Defined on
ARRAYdata. Same precedence as^.-
() Procedure argument list. Defined on
PROCEDUREobjects. Same precedence as^.-
::, . No value for GDBN and Modula-2 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] | [ ? ] |
