GML Overview: 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); }

Previous: Assignments

Next: Local and Global Variables

Back To GML For Non-Programmers