22 lines
728 B
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> "}"
|