Docs / Language
EBNF
Planning grammar (for review, not a byte-for-byte parser table):
File = "@" PackagePath { CompileTag } { Import } { Decl } .
Import = [ Ident ] "#" Path .
ReturnStmt = "<<" [ Expr ] .
ThrowStmt = ">>" Expr .
ExitStmt = "<<<" Expr .
BreakStmt = "<-" .
ContinueStmt = "->" .
RangeOp = ":" . // [start, end)
XuStmt = "xu" QualifiedName "(" [ Args ] ")" .
Expr = … | Expr "or" "(" Ident ")" Block | Expr "or" ">>" .
PackagePath is a slash path, optionally quoted for domain-based identities. Dots in domain names are preserved. An import alias precedes #; external paths require an alias.