3. Modules¶
Syntax
SourceFile::=ZeroWidthNoBreakingSpace?Shebang?ModuleZeroWidthNoBreakingSpace::= \u{FEFF}Shebang::= #! ~[\n]*Module::=Item*Item::=MacroItem|StatementMacroItem::= #!MacroInvocations
Examples
#!/usr/bin/env hashc
#![feature(quantum_closures)]
Foo := struct(
x: i32,
y: i32 = 0,
)
FooKind := enum(
Bar,
Baz,
)
main := () => {
println("hello world")
}
3.1. Statements¶
Syntax
Statement::=Expression| ;StatementList::=Statement*