Skip to content

Commit 3588d8e

Browse files
committed
Update syntax guide
1 parent ec3ebd7 commit 3588d8e

1 file changed

Lines changed: 11 additions & 5 deletions

File tree

doc/syntax.md

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -402,13 +402,13 @@ _decl_ ::= _class-decl_ # Class declaration
402402
| _const-decl_ # Constant declaration
403403
| _global-decl_ # Global declaration
404404

405-
_class-decl_ ::= `class` _class-name_ _type-parameters_ _members_ `end`
406-
| `class` _class-name_ _type-parameters_ `<` _class-name_ _type-arguments_ _members_ `end`
405+
_class-decl_ ::= `class` _class-name_ _module-type-parameters_ _members_ `end`
406+
| `class` _class-name_ _module-type-parameters_ `<` _class-name_ _type-arguments_ _members_ `end`
407407

408-
_module-decl_ ::= `module` _module-name_ _type-parameters_ _members_ `end`
409-
| `module` _module-name_ _type-parameters_ `:` _class-name_ _type-arguments_ _members_ `end`
408+
_module-decl_ ::= `module` _module-name_ _module-type-parameters_ _members_ `end`
409+
| `module` _module-name_ _module-type-parameters_ `:` _class-name_ _type-arguments_ _members_ `end`
410410

411-
_interface-decl_ ::= `interface` _interface-name_ _type-parameters_ _interface-members_ `end`
411+
_interface-decl_ ::= `interface` _interface-name_ _module-type-parameters_ _interface-members_ `end`
412412

413413
_interface-members_ ::= _method-member_ # Method
414414
| _include-member_ # Mixin (include)
@@ -424,6 +424,12 @@ _global-decl_ ::= _global-name_ `:` _type_
424424

425425
_const-name_ ::= _namespace_ /[A-Z]\w*/
426426
_global-name_ ::= /$[a-zA-Z]\w+/ | ...
427+
428+
_module-type-parameters_ ::= # Empty
429+
| `[` _module-type-parameter_ `,` ... `]`
430+
431+
_module-type-parameter_ ::= _variance_ _type-variable_
432+
_variance_ ::= `out` | `in`
427433
```
428434

429435
### Class declaration

0 commit comments

Comments
 (0)