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