Mercurial > hg > CbC > CbC_llvm
comparison clang-tools-extra/clang-doc/Generators.h @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children | 2e18cbf3894f |
comparison
equal
deleted
inserted
replaced
147:c2174574ed3a | 150:1d019706d866 |
---|---|
1 //===-- Generators.h - ClangDoc Generator ----------------------*- C++ -*-===// | |
2 // | |
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | |
4 // See https://llvm.org/LICENSE.txt for license information. | |
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
6 // | |
7 //===----------------------------------------------------------------------===// | |
8 // Generator classes for converting declaration information into documentation | |
9 // in a specified format. | |
10 //===----------------------------------------------------------------------===// | |
11 | |
12 #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_DOC_GENERATOR_H | |
13 #define LLVM_CLANG_TOOLS_EXTRA_CLANG_DOC_GENERATOR_H | |
14 | |
15 #include "Representation.h" | |
16 #include "llvm/Support/Error.h" | |
17 #include "llvm/Support/Registry.h" | |
18 | |
19 namespace clang { | |
20 namespace doc { | |
21 | |
22 // Abstract base class for generators. | |
23 // This is expected to be implemented and exposed via the GeneratorRegistry. | |
24 class Generator { | |
25 public: | |
26 virtual ~Generator() = default; | |
27 | |
28 // Write out the decl info in the specified format. | |
29 virtual llvm::Error generateDocForInfo(Info *I, llvm::raw_ostream &OS, | |
30 const ClangDocContext &CDCtx) = 0; | |
31 // This function writes a file with the index previously constructed. | |
32 // It can be overwritten by any of the inherited generators. | |
33 // If the override method wants to run this it should call | |
34 // Generator::createResources(CDCtx); | |
35 virtual llvm::Error createResources(ClangDocContext &CDCtx); | |
36 | |
37 static void addInfoToIndex(Index &Idx, const doc::Info *Info); | |
38 }; | |
39 | |
40 typedef llvm::Registry<Generator> GeneratorRegistry; | |
41 | |
42 llvm::Expected<std::unique_ptr<Generator>> | |
43 findGeneratorByName(llvm::StringRef Format); | |
44 | |
45 std::string getAccess(AccessSpecifier AS); | |
46 | |
47 std::string getTagType(TagTypeKind AS); | |
48 | |
49 } // namespace doc | |
50 } // namespace clang | |
51 | |
52 #endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_DOC_GENERATOR_H |