2025-11-28 09:28:36 +00:00
|
|
|
<function_declaration> ::= <optional_whitespace>
|
|
|
|
|
<accessibility_modifier>
|
|
|
|
|
<function_keyword>
|
2025-12-01 06:09:07 +00:00
|
|
|
<required_single_line_whitespace>
|
2025-11-28 09:28:36 +00:00
|
|
|
<identifier>
|
|
|
|
|
<optional_whitespace>
|
|
|
|
|
<function_signature>
|
|
|
|
|
<optional_whitespace>
|
2025-12-01 06:09:07 +00:00
|
|
|
<standard_statement_block>
|
2025-11-24 23:17:20 +00:00
|
|
|
|
2025-12-01 06:09:07 +00:00
|
|
|
<function_signature> ::= "(" <parameter_list>? ")" <optional_whitespace> <arrow_keyword> <optional_whitespace> <return_type_list> <optional_whitespace> <function_error_signature>?
|
2025-11-24 23:17:20 +00:00
|
|
|
|
2025-12-01 06:09:07 +00:00
|
|
|
<function_error_signature> ::= <function_error_identifier> <required_single_line_whitespace> <error_type_list>
|
2025-11-25 03:48:14 +00:00
|
|
|
|
2025-12-01 06:09:07 +00:00
|
|
|
<return_type_list> ::= "[" <optional_single_line_whitespace> <type> | <callable_type_keyword> ( <optional_single_line_whitespace> "|" <optional_single_line_whitespace> <null_keyword>)? <optional_single_line_whitespace> "]"
|
|
|
|
|
|
|
|
|
|
<error_type_list> ::= "[" <optional_single_line_whitespace> <inherited_error_type> ("," <optional_single_line_whitespace> <inherited_error_type>)* "]"
|
2025-11-25 03:48:14 +00:00
|
|
|
|
2025-11-28 09:28:36 +00:00
|
|
|
<parameter_list> ::= <parameter_group>?
|
2025-11-24 23:17:20 +00:00
|
|
|
|
2025-11-28 09:28:36 +00:00
|
|
|
<parameter_group> ::= <optional_whitespace>
|
|
|
|
|
( <required_parameters>
|
2025-11-28 05:52:08 +00:00
|
|
|
| <required_parameters> "," <default_parameters>
|
2025-11-28 09:28:36 +00:00
|
|
|
| <default_parameters> )
|
|
|
|
|
<optional_whitespace>
|
2025-11-24 23:17:20 +00:00
|
|
|
|
2025-11-28 05:52:08 +00:00
|
|
|
<required_parameters> ::=
|
2025-11-28 09:28:36 +00:00
|
|
|
<optional_whitespace>
|
|
|
|
|
( <required_parameter>
|
2025-12-01 06:09:07 +00:00
|
|
|
| <required_parameter> "," <required_parameters> )
|
2025-11-28 05:52:08 +00:00
|
|
|
|
|
|
|
|
<default_parameters> ::=
|
2025-11-28 09:28:36 +00:00
|
|
|
<optional_whitespace>
|
|
|
|
|
( <default_parameter>
|
|
|
|
|
| <default_parameter> "," <default_parameters> )
|
2025-11-28 05:52:08 +00:00
|
|
|
|
2025-12-01 06:09:07 +00:00
|
|
|
<required_parameter> ::= <type> <required_single_line_whitespace> <identifier>
|
|
|
|
|
|
|
|
|
|
<default_parameter> ::= <type> <required_single_line_whitespace> <identifier> ".default(" <literal> ")"
|
|
|
|
|
|
|
|
|
|
<lambda_declaration> ::= <function_keyword> <optional_whitespace> "(" <parameter_list>? ")" <function_signature> <standard_statement_block>
|
2025-11-28 05:52:08 +00:00
|
|
|
|
2025-12-01 06:09:07 +00:00
|
|
|
<constructor_declaration> ::= <optional_whitespace> <accessibility_modifier> <function_keyword> <required_single_line_whitespace> <constructor_method_name> <optional_whitespace> <function_signature> <optional_whitespace> <standard_statement_block>
|
2025-11-24 23:17:20 +00:00
|
|
|
|
2025-12-01 06:09:07 +00:00
|
|
|
<destructor_declaration> ::= <optional_whitespace> <accessibility_modifier> <function_keyword> <required_single_line_whitespace> <destructor_method_name> <optional_whitespace> <function_signature> <optional_whitespace> <standard_statement_block>
|