An expression whose evaluated value the variable should have.
Available arithmetic operators are +, -, *, / and % (modulo).
Available relational operators are <, >, ==, !=, <= and
>=. Available bitwise operators are &, | and ^, representing
AND, OR and XOR. Available boolean operators are && and ||,
working as the pike AND and OR. Subexpressions can be surrounded by (
and ).
The size of a string or array may be retrieved with
sizeof(var.something).
The function pow(x,y) can be
used for calculating the value x raised to the specified power y.
Numbers can be represented as decimal integers when numbers
are written out as normal, e.g. "42". Numbers can also be written
as hexadecimal numbers when precedeed with "0x", as octal numbers
when precedeed with "0" and as binary number when precedeed with
"0b". Numbers can also be represented as floating point numbers,
e.g. "1.45" or "1.6E5". Numbers can be converted between floats
and integers by using the cast operators "(float)" and "(int)".
RXML variables may be referenced with the syntax "scope.name".
Note that they are not written as entity references (i.e. without the
surrounding & and ;). If they are written that way then their
values will be substituted into the expression before it is parsed,
which can lead to strange parsing effects.
A common problem when dealing with variables from forms is that a
variable might be empty or a non-numeric string. To ensure that a
value is produced the special functions INT and FLOAT may be used. In
the expression "INT(form.num)+1" the INT-function will produce some
integer regardless what the form variable contains, thereby
preventing errors in the expression.