Skip to content

Commit 603c2c8

Browse files
committed
Add syntax section for adts and enums
1 parent 3ed077b commit 603c2c8

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

docs/docs/reference/adts.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,22 @@ enum Color(val rgb: Int) {
9292
}
9393
```
9494

95+
## Syntax of Enums
96+
97+
1. Enum definitions and enum classes are defined as follows:
98+
99+
TmplDef ::= `enum' `class’ ClassDef
100+
| `enum' EnumDef
101+
EnumDef ::= id ClassConstr [`extends' [ConstrApps]]
102+
[nl] `{’ EnumCaseStat {semi EnumCaseStat} `}’
103+
104+
2. Cases of enums are defined as follows:
105+
106+
EnumCaseStat ::= {Annotation [nl]} {Modifier} EnumCase
107+
EnumCase ::= `case' (EnumClassDef | ObjectDef | ids)
108+
EnumClassDef ::= id [ClsTpeParamClause | ClsParamClause]
109+
ClsParamClauses TemplateOpt
110+
TemplateStat ::= ... | EnumCaseStat
95111

96112

97113

0 commit comments

Comments
 (0)