Waddle_Language/grammar/main.bnf

31 lines
1 KiB
BNF

<program> ::= <use_statement>*
<optional_whitespace>
<comment>*
<optional_whitespace>
<top_level_definition>*
<optional_whitespace>
<comment>*
<optional_whitespace>
<use_statement> ::= <use_statement_identifier>
<required_single_line_whitespace>
<identifier> ("." <identifier>)*
<optional_whitespace> ";"
<top_level_definition> ::= <type_declaration> | <interface_declaration> | <error_declaration>
import "core/keywords.bnf"
import "core/comments.bnf"
import "core/whitespace.bnf"
import "core/base_types.bnf"
import "core/identifiers.bnf"
import "core/literals.bnf"
import "core/visibility.bnf"
import "declarations/error_declarations.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"