Rule enumBody() {
return Sequence(
Ch('{'), group.basics.optWS(),
Optional(Sequence(
enumConstant().label("head"),
ZeroOrMore(Sequence(
Ch(','), group.basics.optWS(),
enumConstant()).label("tail")),
Optional(Sequence(Ch(','), group.basics.optWS())))).label("constants"),
Optional(Sequence(
Ch(';'), group.basics.optWS(),
typeBodyDeclarations())).label("typeBodyDeclarations"),
Ch('}'), group.basics.optWS(),
set(actions.createEnumBody(value("constants/Sequence/head"), values("constants/Sequence/ZeroOrMore/tail"), value("typeBodyDeclarations"))));
}