Expression

expression = 
  unary expression | expression binary expression |
  expression (forall | forsome) iterator |
    simple-expression | 
  if condition then expression else expression |
  set of type-expression | list of type-expression |
  map from type-expression {[,] type-expression} to
    type-expression

simple-expression =
  value | name | qualified-name | function-call |
  ( expression ) 

unary = - | # | not

binary = 
  @ | ? | ** | * | / | intersect | + | - |
  = | /= | < | <= | > | >= | 
  subset | not subset | in | not in | and | or

Expressions are evaluated using the following operator precedences:

@
- #
?
**
* / intersect
+ -
= /= < <= > >= subset not subset in not in
not
and
or
forall forsome

Click on the operators for their definitions. See also: if expressions, powersets, lists of, and maps.


Herman Venter

This is Slim documentation as snarfed on 27 May 1999 by dB.