Waddle_Language/grammar/interfaces/interface_definitions.bnf

22 lines
728 B
BNF

<interface_declaration> ::= "@" <interface_identifier> "{" <interface_body> "}"
<interface_identifier> ::= <identifier>
<interface_body> ::= <interface_method_declaration>*
<interface_method_declaration> ::=
<accessibility_modifier> "fn" <identifier> <function_signature> ";"
<interface_implementation> ::= <type_declaration> "->" <interface_identifier_list>
<interface_method_signature> ::=
<accessibility_modifier>"fn" <identifier> <function_signature>
<generic_interface_declaration> ::=
"@" <interface_identifier> "<" <type_parameter_list> ">"
"{" <interface_body> "}"
<interface_inheritance> ::=
"@" <interface_identifier> "extends" <interface_identifier_list>
"{" <interface_body> "}"