1include "clang/Basic/ASTNode.td"
2
3class CommentNode<CommentNode base, bit abstract = 0> : ASTNode {
4  CommentNode Base = base;
5  bit Abstract = abstract;
6}
7
8def Comment : CommentNode<?, 1>;
9def InlineContentComment : CommentNode<Comment, 1>;
10  def TextComment : CommentNode<InlineContentComment>;
11  def InlineCommandComment : CommentNode<InlineContentComment>;
12  def HTMLTagComment : CommentNode<InlineContentComment, 1>;
13    def HTMLStartTagComment : CommentNode<HTMLTagComment>;
14    def HTMLEndTagComment : CommentNode<HTMLTagComment>;
15
16def BlockContentComment : CommentNode<Comment, 1>;
17  def ParagraphComment : CommentNode<BlockContentComment>;
18  def BlockCommandComment : CommentNode<BlockContentComment>;
19    def ParamCommandComment : CommentNode<BlockCommandComment>;
20    def TParamCommandComment : CommentNode<BlockCommandComment>;
21    def VerbatimBlockComment : CommentNode<BlockCommandComment>;
22    def VerbatimLineComment : CommentNode<BlockCommandComment>;
23
24def VerbatimBlockLineComment : CommentNode<Comment>;
25
26def FullComment : CommentNode<Comment>;
27
28