Modules
Modules
Modules
Every Letlang module (which correspond to a source file with the extension
.let
) MUST begin with a module_decl_statement
rule.
Rule: unit
Rule: module_decl_statement
Rule: statement
Rule: identifier
unit
= module_decl_statement statement*
module_decl_statement
= "module" path:(identifier ("::" identifier)*) ";"
statement
= import_statement
/ effect_decl_statement
/ class_decl_statement
/ func_decl_statement
identifier
= [_a-zA-Z][_0-9a-zA-Z]*
Examples:
module std::io;
module foo::main;
Every module path MUST be unique.