Waddle_Language/core/bnf/functions.bnf
2025-11-23 00:58:46 -06:00

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>