class Comment { bit Abstract = abstract; } class DComment : Comment { Comment Base = base; } def InlineContentComment : Comment<1>; def TextComment : DComment; def InlineCommandComment : DComment; def HTMLTagComment : DComment; def HTMLStartTagComment : DComment; def HTMLEndTagComment : DComment; def BlockContentComment : Comment<1>; def ParagraphComment : DComment; def BlockCommandComment : DComment; def ParamCommandComment : DComment; def TParamCommandComment : DComment; def VerbatimBlockComment : DComment; def VerbatimLineComment : DComment; def VerbatimBlockLineComment : Comment; def FullComment : Comment;