2.1.2 Boolean Operations

These are the Boolean operations, ordered by ascending priority:

Operation Result Notes
x or y if x is false, then y, else x (1)
x and y if x is false, then x, else y (1)
not x if x is false, then 1, else 0 (2)

Notes:

(1)
These only evaluate their second argument if needed for their outcome.

(2)
"not" has a lower priority than non-Boolean operators, so e.g. not a == b is interpreted as not(a == b), and a == not b is a syntax error.