Expressions
Expressions are formed from variables and constants by using operators and functions and by combining expressions together into arrays (array expressions).
The following diagram summarizes all kinds of expressions:

Operator expressions
The CPO file format supports a variety of operators.

The following table summarizes the supported operators. Operator precedence is mostly inspired by the C programming language.
Note the difference between == and = operators:
The single equals sign = can be used only in statements
identifier = expression;,
while a double equal sign == is an operator that returns a Boolean expression.
Example
x = intVar(1..10);
y = intVar(1..10);
z = intVar(1..10);
expr1 = 2*(x + y);
expr2 = y % z;
expr1 + 2 >= expr2;
Function expressions
There are many built-in functions that return expressions, see the list of functions. The syntax to call a function follows a common standard:

There are a few exceptional functions that require extended syntax, for example
intVar or intervalVar. In this case, the syntax is described together with
the function.
Example
x = intVar(-10..10); // intVar is a function with special syntax
absx = abs(x); // abs is a function returning absolute value of x