1219820Sjeffclass Comment<bit abstract = 0> { 2219820Sjeff bit Abstract = abstract; 3219820Sjeff} 4219820Sjeff 5270710Shselaskyclass DComment<Comment base, bit abstract = 0> : Comment<abstract> { 6219820Sjeff Comment Base = base; 7219820Sjeff} 8219820Sjeff 9219820Sjeffdef InlineContentComment : Comment<1>; 10219820Sjeff def TextComment : DComment<InlineContentComment>; 11219820Sjeff def InlineCommandComment : DComment<InlineContentComment>; 12219820Sjeff def HTMLTagComment : DComment<InlineContentComment, 1>; 13219820Sjeff def HTMLStartTagComment : DComment<HTMLTagComment>; 14219820Sjeff def HTMLEndTagComment : DComment<HTMLTagComment>; 15219820Sjeff 16219820Sjeffdef BlockContentComment : Comment<1>; 17219820Sjeff def ParagraphComment : DComment<BlockContentComment>; 18219820Sjeff def BlockCommandComment : DComment<BlockContentComment>; 19219820Sjeff def ParamCommandComment : DComment<BlockCommandComment>; 20219820Sjeff def TParamCommandComment : DComment<BlockCommandComment>; 21219820Sjeff def VerbatimBlockComment : DComment<BlockCommandComment>; 22219820Sjeff def VerbatimLineComment : DComment<BlockCommandComment>; 23219820Sjeff 24219820Sjeffdef VerbatimBlockLineComment : Comment; 25219820Sjeff 26219820Sjeffdef FullComment : Comment; 27219820Sjeff 28289644Shselasky