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