24 lines
1 KiB
BNF
24 lines
1 KiB
BNF
<constructor_declaration> ::= <accessibility_modifier>"fn" "on_create" "(" <parameter_list>? ")" "->" "[Null]" "{" <statement>* "}"
|
|
|
|
<destructor_declaration> ::= <accessibility_modifier>"fn" "on_destroy" "(" <parameter_list>? ")" "->" "[Null]" "{" <statement>* "}"
|
|
|
|
<interface_declaration> ::= "@"<interface_identifier> "{" <interface_body> "}"
|
|
|
|
<interface_body> ::= <interface_method_declaration>*
|
|
|
|
<interface_method_declaration> ::= <accessibility_modifier>"fn" <identifier> <function_signature> ";"
|
|
|
|
<function_declaration> ::= <accessibility_modifier>"fn" <identifier> <function_signature> "{" <statement>* "}"
|
|
|
|
<function_signature> ::= "(" <parameter_list>? ")" "->" <return_type_list>
|
|
|
|
<accessibility_modifier> ::= "-" | "" | "+"
|
|
|
|
<return_type_list> ::= "[" <type> ("," <type>)* "]" | "Runnable"
|
|
|
|
<parameter_list> ::= <required_parameter> ("," <required_parameter>)* [("," <default_parameter>)*]
|
|
|
|
<required_parameter> ::= <identifier> ":" <parameter_type>
|
|
|
|
<default_parameter> ::= <identifier> ":" <parameter_type> "=" <expression>
|