2025-11-24 23:17:20 +00:00
|
|
|
<function_declaration> ::= <accessibility_modifier>"fn" <identifier>
|
|
|
|
|
<function_signature>
|
2025-11-25 03:48:14 +00:00
|
|
|
["fails" "with" <error_type_list>]?
|
2025-11-24 23:17:20 +00:00
|
|
|
"{" <statement>* "}"
|
|
|
|
|
|
|
|
|
|
<function_signature> ::= "(" <parameter_list>? ")"
|
|
|
|
|
"->" <return_type_list>
|
|
|
|
|
|
2025-11-25 03:48:14 +00:00
|
|
|
<error_type_list> ::= <error_type> ("," <error_type>)*
|
|
|
|
|
|
|
|
|
|
<error_type> ::= <identifier> ["/" <identifier>]?
|
|
|
|
|
|
2025-11-28 05:52:08 +00:00
|
|
|
<parameter_list> ::=
|
|
|
|
|
<parameter_group>?
|
2025-11-24 23:17:20 +00:00
|
|
|
|
2025-11-28 05:52:08 +00:00
|
|
|
<parameter_group> ::=
|
|
|
|
|
<required_parameters>
|
|
|
|
|
| <required_parameters> "," <default_parameters>
|
|
|
|
|
| <default_parameters>
|
2025-11-24 23:17:20 +00:00
|
|
|
|
2025-11-28 05:52:08 +00:00
|
|
|
<required_parameters> ::=
|
|
|
|
|
<required_parameter>
|
|
|
|
|
| <required_parameter> "," <required_parameters>
|
|
|
|
|
|
|
|
|
|
<default_parameters> ::=
|
|
|
|
|
<default_parameter>
|
|
|
|
|
| <default_parameter> "," <default_parameters>
|
|
|
|
|
|
|
|
|
|
<required_parameter> ::= <parameter_type> <identifier>
|
|
|
|
|
|
|
|
|
|
<default_parameter> ::= <parameter_type> <identifier> ".default(" <literal> ")"
|
2025-11-24 23:17:20 +00:00
|
|
|
|
|
|
|
|
<lambda_declaration> ::= "fn" "(" <parameter_list>? ")"
|
|
|
|
|
"->" "[" <type> "]"
|
|
|
|
|
"{" <statement>* "}"
|