Operators

The following table lists the precedence and associativity of all operators. Operators are listed top to bottom, in ascending precedence. Operators in the same box group left to right. Operators are binary, unless the syntax is provided.

Operator Description Remarks
**
Power 1
+x
-x
!x
Positive
Negative
Negation
*
/
%
Multiplication
Division
Remainder
+
-
Addition
Subtraction
<<
>>
Left shift
Right shift
2
& Bitwise AND
| Bitwise OR
^ Bitwise XOR
>=
>
<=
<
Greater or equal
Greater
Lower or equal
Lower
3
!=
==
Not Equal
Equal
&& Boolean AND
|| Boolean OR
if c then x else y fi Conditional expression
1

The exponent must be a compile-time constant of type u32

2

The right operand must be a compile time constant of type u32

3

Both operands are asserted to be strictly lower than the biggest power of 2 lower than p/2, unless one of them can be determined to be a compile-time constant