[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

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
[+ +] delayed choice
|~| internal choice
[| |> exception

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.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]

This document was generated by Phil Armstrong on May 17, 2012 using texi2html 1.82.