Go to the Next or Previous section, the Detailed Contents, or the FS(E)L Home Page.


A.5 Operator Precedence

The operators at the top of the table bind more tightly than those lower down.

Class Operators Description Associativity

Application f(0) function application
[[ <- ]] renaming

Arithmetic - unary minus
*, /, % multiplication left
+, - addition left

Sequence ^ catenation
# length

Comparisons <, >, <=, >= ordering none
==, != equality none

Boolean not negation
and conjunction
or disjunction

Sequential -> prefix
& guard
; sequence

Choice [> untimed timeout
/\ interrupt
[] external choice
|~| internal choice

Parallel [| |], [ || ], [ <-> ] parallel none
||| interleave

Other if then else conditional
let within local definitions
\ @ lambda term

The replicated versions of the process operators have the lowest predence of all. The @@ pattern operator has a precedence just below that of function application.

Note that this table represents a simplification of the acual parser rules. For example, the parser will intrepret `#s+1' as `(#s)+1', which does not strictly agree with the table, since the parser is making (limited) use of type information.


Go to the Next or Previous section, the Detailed Contents, or the FS(E)L Home Page.