Expressions
Expressions can be real numbers (e.g. 3.4), hexadecimal numbers, starting
with a $ sign (e.g. $00FFAA), strings between single or
double quotes (e.g. 'hello' or “hello”) or more complicated
expressions. (Note that strings can run over multiple lines!)
For expressions, the following binary operators exist (in
order of priority):
- && || ^^: combine Boolean values (&& = and, || = or,
^^ = xor)
- < <= == != > >=: comparisons, result in true (1) or
false (0)
- | & ^: bitwise operators (| = bitwise or, & = bitwise and, ^
= bitwise xor)
- << >>: bitwise operators (<< = shift left, >
> = shift right)
- + -: addition, subtraction
- * / div mod: multiplication, division, integer division, and modulo
Note that
value of x div y is the value of x/y rounded in the direction of zero to the nearest integer.
The mod operator returns the remainder obtained by dividing its operands.
In other words, x mod y = x - (x div y) * y.
Also, the following unary operators exist:
- !: not, turns true into false and false into true
- -: negates the next value
- ~: negates the next value bitwise
As values you can use numbers, variables, or functions that return a
value. Sub-expressions can be placed between brackets. All operators work
for real values. Comparisons also work for strings and + concatenates
strings. (Please note that, contrary to certain languages, both arguments
to a Boolean operation are always computed, even when the first argument
already determines the outcome.)
Example
Here is an example with some assignments.
{
x = 23;
color = $FFAA00;
str = 'hello world';
y += 5;
x *= y;
x = y << 2;
x = 23*((2+4) / sin(y));
str = 'hello' + " world";
b = (x < 5) && !(x==2 || x==4);
}