Statements are terminated by ';'. The usual infix expression rules apply, with the following precedence table: (higher precedence number means tighter binding) Operators Precedence Associativity ** 14 Right - ! ~ 12 Prefix (unary) * / // % 11 Left + - 10 Left & 9 Left ^ 8 Left | 7 Left < > <= >= 6 Nonassociative == != 5 Nonassociative && 4 Left (short-circuiting) ^^ 3 Left || 2 Left (short-circuiting) = 1 Right (also += -= *= /= %= **= &= ^= |=) break and continue get parsed to calls to the __break() and __continue() compiler intrinsics (thus become AST_CALL nodes).