| 1 (highest) |
attribute names, constants, variables, none, unary +, unary -, [E], (...) |
atomic / prefix unary |
primary expressions (including unary sign, filter, and tuple path tails) |
| 2 |
!, ~, :k, :k..m, :?, :+, :k+ |
postfix |
pointwise negation, path complement, cardinality constraint |
| 3 |
., ⇒, [E], .Σ, .Σexists, .Σcount, .Σmin, .Σmax, ... |
left-associative |
path composition (existential, universal, filter) |
| 4 |
^ |
right-associative |
Power |
| 5 |
*, / |
left-associative |
Multiply and divide |
| 6 |
+, - |
left-associative |
Add and subtract |
| 7 |
=, ≠, <, >, ≤, ≥, ⊂, ⊃, ⊆, ⊇, ⊄, ⊅, ∈, ∉, is |
left-associative |
Comparisons and type tests |
| 8 |
⊓, ∩, ⨝ |
left-associative |
tuple meet (logical AND) |
| 9 |
⊔, ∪, | |
left-associative |
tuple join (logical OR), set union, alternative operator |
| 10 |
set difference, -- |
left-associative |
set difference uses the canonical set-minus character described in the lexical grammar, with keyboard backslash accepted as an input alias; -- is path operator difference |
| 11 |
as |
left-associative |
attribute renaming |
| 12 |
¬ |
prefix |
logical NOT |
| 13 |
∧ |
left-associative |
logical AND |
| 14 |
∨ |
left-associative |
logical OR |
| 15 |
→ |
right-associative |
logical IMPLIES |
| 16 |
↔ |
left-associative |
logical equivalence |
| 17 |
if ... then ... else ... |
special form |
conditional expression |
| 18 (lowest) |
, (inside (…)) |
left-associative |
tuple component separator |