Note: By defining reader and writer methods b:B and b(v:B), n.b
and C::b may be used as if b was defined as an attribute.
Furthermore the use of any monadic and dyadic operator
except
and and or in an expression is syntactically replaced by a
procedure call according to table 4.2. For showing the
priorities of operators the table also includes the
built in operators or and and.
is_equal is automatically defined for all types but its definition may be overriden by the user.
It is asserted, that plus and times are left associative; is_equal and plus are commutative. pow is right associative. No assumptions are made on any of the other operators. If a user-defined procedure is_equal or plus is not commutative, the result is undefined. Commutativity is not asserted for times.
Furthermore bracketed expression lists for index expressions are replaced according to table 4.1.
Table 4.1: Replacements for index expressions
x must evaluate to an array object for which the procedures aset and
aget are defined with the appropriate number of parameters of
appropriate types. The first form is also used when retransmitting out
parameters to the
caller of a method.
The second form is used when
appears as an operand within an expression.
Table 4.2: Replacements for unary and binary operators