Expressions occur in assignments or in tests. Expressions produce a value, of a certain type.
Expressions are built with two components: Operators and their operands. Usually an operator is binary, i.e. it requires 2 operands. Binary operators occur always between the operands (as in X/Y). Sometimes an operator is unary, i.e. it requires only one argument. A unary operator occurs always before the operand, as in -X.
When using multiple operands in an expression, the precedence rules of
table () are used.
Operator | Precedence | Category |
Not, @ | Highest | Unary operators |
* / div mod and shl shr as | Second | Multiplying operators |
+ - or xor | Third | Adding operators |
< <> < > <= >= in is | Lowest (Fourth) | relational operators |
When determining the precedence, te compiler uses the following rules:
An expression is a sequence of terms and factors. A factor is an operand of a multiplication operator. A term is an operand of an adding operator.