xref: /minix3/external/bsd/llvm/dist/clang/include/clang/Index/CommentToXML.h (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1  //===--- CommentToXML.h - Convert comments to XML representation ----------===//
2  //
3  //                     The LLVM Compiler Infrastructure
4  //
5  // This file is distributed under the University of Illinois Open Source
6  // License. See LICENSE.TXT for details.
7  //
8  //===----------------------------------------------------------------------===//
9  
10  #ifndef LLVM_CLANG_INDEX_COMMENTTOXML_H
11  #define LLVM_CLANG_INDEX_COMMENTTOXML_H
12  
13  #include "clang/Basic/LLVM.h"
14  #include <memory>
15  
16  namespace clang {
17  class ASTContext;
18  
19  namespace comments {
20  class FullComment;
21  class HTMLTagComment;
22  }
23  
24  namespace index {
25  class SimpleFormatContext;
26  
27  class CommentToXMLConverter {
28    std::unique_ptr<SimpleFormatContext> FormatContext;
29    unsigned FormatInMemoryUniqueId;
30  
31  public:
32    CommentToXMLConverter();
33    ~CommentToXMLConverter();
34  
35    void convertCommentToHTML(const comments::FullComment *FC,
36                              SmallVectorImpl<char> &HTML,
37                              const ASTContext &Context);
38  
39    void convertHTMLTagNodeToText(const comments::HTMLTagComment *HTC,
40                                  SmallVectorImpl<char> &Text,
41                                  const ASTContext &Context);
42  
43    void convertCommentToXML(const comments::FullComment *FC,
44                             SmallVectorImpl<char> &XML,
45                             const ASTContext &Context);
46  };
47  
48  } // namespace index
49  } // namespace clang
50  
51  #endif // LLVM_CLANG_INDEX_COMMENTTOXML_H
52  
53