// deleted concrete syntax (" ... ") and pretty-print commands ( *s and *l) // and implements Main = ClassDefList . ClassDef = Ident Decl . Decl: Abstract | Concrete. Abstract = NESubtypeList. Concrete = FieldList. Field = Ident TypeName. TypeName = Ident. ClassDefList: ClassDefCons | ClassDefEmpty. ClassDefCons = ClassDef ClassDefList. // implements ConsList. ClassDefEmpty = . // implements EmptyList. FieldList: FieldCons | FieldEmpty. FieldCons = Field FieldList. // implements ConsList. FieldEmpty = . // implements EmptyList. NESubtypeList = TypeName SubtypeList. // implements ConsList. SubtypeList: SubtypeCons | SubtypeEmpty. SubtypeCons = TypeName SubtypeList. // implements ConsList. SubtypeEmpty = . // implements EmptyList. // noparse // interface ConsList = . // interface EmptyList = .