Waddle_Language/core/bnf/functions.bnf

24 lines
1 KiB
BNF
Raw Normal View History

2025-11-23 06:58:46 +00:00
<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>