Indentation, not braces
A block is: followed by either an indented group of statements, or (for
short bodies) a single statement on the same line. The lexer tracks
indentation itself and hands the parser clean INDENT/DEDENT tokens —
see Indentation-Sensitive Lexing for
exactly how, if you’re curious about the mechanism.
if / else
else if chains parse as nested if statements in the AST (the same
representation you’d get writing it as nested if/else blocks by hand) —
there’s no special “elif” token.
while
for — over arrays and strings
range(a), range(a, b), and range(a, b, step) build an Array<Int> you
can iterate the same way:
break / continue
Multi-line expressions
Newlines and indentation are both suppressed inside( ) and [ ], so a
call or array literal can wrap across lines without any continuation
character:
Continue
Arrays
Literals, indexing, mutation, and the built-in helpers.
Modules
Splitting a program across files with
import.
