Waddle_Language/grammar/main.bnf

24 lines
760 B
BNF

<program> ::= <module_declaration>* <use_statement>* <declaration>*
<module_declaration> ::= "module" <identifier> "{"
(<export_declaration> | <declaration>)*
"}"
<export_declaration> ::= <accessibility_modifier>"export"
(<type_declaration> | <function_declaration>)
<use_statement> ::= "use" <identifier> ("." <identifier>)* ";"
import "core/base_types.bnf"
import "core/identifiers.bnf"
import "core/literals.bnf"
import "core/visibility.bnf"
import "core/modules.bnf"
import "declarations/type_declarations.bnf"
import "declarations/function_declarations.bnf"
import "operations/expressions.bnf"
import "operations/method_calls.bnf"
import "operations/control_flow.bnf"
import "interfaces/interface_definitions.bnf"
import "modules/**/*.bnf"