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. 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);
}