1239313Sdimclass Comment<bit abstract = 0> { 2239313Sdim bit Abstract = abstract; 3239313Sdim} 4239313Sdim 5239313Sdimclass DComment<Comment base, bit abstract = 0> : Comment<abstract> { 6239313Sdim Comment Base = base; 7239313Sdim} 8239313Sdim 9239313Sdimdef InlineContentComment : Comment<1>; 10239313Sdim def TextComment : DComment<InlineContentComment>; 11239313Sdim def InlineCommandComment : DComment<InlineContentComment>; 12239313Sdim def HTMLTagComment : DComment<InlineContentComment, 1>; 13239313Sdim def HTMLStartTagComment : DComment<HTMLTagComment>; 14239313Sdim def HTMLEndTagComment : DComment<HTMLTagComment>; 15239313Sdim 16239313Sdimdef BlockContentComment : Comment<1>; 17239313Sdim def ParagraphComment : DComment<BlockContentComment>; 18239313Sdim def BlockCommandComment : DComment<BlockContentComment>; 19239313Sdim def ParamCommandComment : DComment<BlockCommandComment>; 20239313Sdim def TParamCommandComment : DComment<BlockCommandComment>; 21239313Sdim def VerbatimBlockComment : DComment<BlockCommandComment>; 22239313Sdim def VerbatimLineComment : DComment<BlockCommandComment>; 23239313Sdim 24239313Sdimdef VerbatimBlockLineComment : Comment; 25239313Sdim 26239313Sdimdef FullComment : Comment; 27239313Sdim 28