| Symbol | Precedence | Function | Number of Operands | Description |
| := | 0 | Assignment | 2 | Assigns the value of an expression on the right to the variable or array element on the left. Right-associative. The value of the assignment is the right-most operand. Supports multiple assignment i.e. a := b := c := 0 sets all 3 variables to zero. Assignment to an array variable creates a copy of the right-hand operand. |
| || | 1 | Logical Or | 2 | True if either expression is true |
| && | 2 | Logical And | 2 | True if both expressions are true |
| += | 2 | Add and Assign | 2 | Adds the expression on the right to the variable or array element on the left. |
| *= | 2 | Multiply and Assign | 2 | Multiplies the variable or array element on the left by the expression on the right |
| /= | 2 | Divide and Assign | 2 | Divides the variable or array element on the left by the expression on the right. |
| ^= | 2 | Exponent and Assign | 2 | Raises the variable or array element on the left to the power of the expression on the right |
| : | 3 | Slice/Range | 2 | Specifies
a range of elements in a string or array. For strings, creates a
substring. For arrays, creates a copy of the elements within the range.
Range includes the upper element. For strings,
negative indices start at the last element and count backwards. |
| == | 4 | Equality | 2 | True if the operands are equal. Operands must be comparable to each other. |
| != | 4 | Inequality | 2 | True if the operands are not equal. |
| > | 5 | Greater Than | 2 | Operands must be comparable and ordered. For strings, comparison is case-insensitive. |
| < | 5 | Less Than | 2 | For strings, case-insensitive. |
| >= | 5 | Greater or Equal | 2 | For strings, case-insensitive. |
| <= | 5 | Less than or Equal | 2 | For strings, case-insensitive. |
| | | 6 | Bitwise Or | 2 | Performs a bitwise or, demoting the operands to integers |
| & | 7 | Bitwise And | 2 | Performs a bitwise and, demoting the operands to integers. |
| << | 8 | Binary Left Shift | 2 | Shifts left operand left by specified number of bits, demoting both operands to integers. |
| >> | 8 | Binary Right Shift | 2 | Shifts left operand right by specified number of bits, demoing both operands to integers. |
| + | 9 | Addition/Concatentation | 2 | Adds two numbers or joins two strings. |
| - | 9 | Subtraction | 2 | Self-explanatory. |
| 10 | Multiplication | 2 | Self-explanatory. |
| / | 10 | Division | 2 | Self-explanatory. |
| % | 10 | Modulo | 2 | Returns the remainder of integer division. |
| ^ | 11 | Exponentiation | 2 | Raises left operand to the power of the right operand. |
| - | 12 | Negation | 1 | Returns the opposite of an expression. |
| $ | 12 | Stringize | 1 | Returns a string representation of an expression. (Shorthand for ToString). |
| ! | 13 | Logical Not | 1 | Returns the opposite of a boolean expression. i.e. !(true) evaluates to false. |
| ( ) | 14 | Parentheses | 0 | Enclose expressions within parentheses to override default precedence rules. |
| [ ] | 15 | Subscript | 2 | For
arrays, accesses the element having the specified key. For strings,
returns a string containing the single character at the specified
position. The expression within the brackets is treated as if it were parenthesized (overrides precedence rules). |