1 class Comment<bit abstract = 0> {
2 bit Abstract = abstract;
5 class DComment<Comment base, bit abstract = 0> : Comment<abstract> {
9 def InlineContentComment : Comment<1>;
10 def TextComment : DComment<InlineContentComment>;
11 def InlineCommandComment : DComment<InlineContentComment>;
12 def HTMLTagComment : DComment<InlineContentComment, 1>;
13 def HTMLStartTagComment : DComment<HTMLTagComment>;
14 def HTMLEndTagComment : DComment<HTMLTagComment>;
16 def BlockContentComment : Comment<1>;
17 def ParagraphComment : DComment<BlockContentComment>;
18 def BlockCommandComment : DComment<BlockContentComment>;
19 def ParamCommandComment : DComment<BlockCommandComment>;
20 def TParamCommandComment : DComment<BlockCommandComment>;
21 def VerbatimBlockComment : DComment<BlockCommandComment>;
22 def VerbatimLineComment : DComment<BlockCommandComment>;
24 def VerbatimBlockLineComment : Comment;
26 def FullComment : Comment;