Waddle_Language/grammar/declarations/function_declarations.bnf

20 lines
561 B
BNF
Raw Normal View History

<function_declaration> ::= <accessibility_modifier>"fn" <identifier>
<function_signature>
"{" <statement>* "}"
<function_signature> ::= "(" <parameter_list>? ")"
"->" <return_type_list>
<parameter_list> ::= <required_parameter>
("," <required_parameter>)*
[("," <default_parameter>)*]
<required_parameter> ::= <identifier> ":" <parameter_type>
<default_parameter> ::= <identifier> ":" <parameter_type>
"=" <expression>
<lambda_declaration> ::= "fn" "(" <parameter_list>? ")"
"->" "[" <type> "]"
"{" <statement>* "}"