28 #ifndef LLVM_CLANG_TOOLING_EXECUTION_H 29 #define LLVM_CLANG_TOOLING_EXECUTION_H 33 #include "llvm/Support/Error.h" 34 #include "llvm/Support/Registry.h" 35 #include "llvm/Support/StringSaver.h" 49 virtual std::vector<std::pair<llvm::StringRef, llvm::StringRef>>
52 llvm::function_ref<
void(StringRef Key, StringRef Value)> Callback) = 0;
62 std::vector<std::pair<llvm::StringRef, llvm::StringRef>>
64 void forEachResult(llvm::function_ref<
void(StringRef Key, StringRef Value)>
68 llvm::BumpPtrAllocator Arena;
69 llvm::UniqueStringSaver Strings;
71 std::vector<std::pair<llvm::StringRef, llvm::StringRef>> KVResults;
84 void reportResult(StringRef Key, StringRef
Value);
115 virtual StringRef getExecutorName()
const = 0;
124 llvm::Error execute(std::unique_ptr<FrontendActionFactory> Action);
126 llvm::Error execute(std::unique_ptr<FrontendActionFactory> Action,
145 virtual void mapVirtualFile(StringRef FilePath, StringRef Content) = 0;
173 const char *Overview =
nullptr);
178 llvm::cl::OptionCategory &Category,
179 const char *Overview =
nullptr);
185 #endif // LLVM_CLANG_TOOLING_EXECUTION_H virtual std::string getRevision()
ExecutionContext(ToolResults *Results)
Initializes a context. This does not take ownership of Results.
The context of an execution, including the information about compilation and results.
virtual std::string getCurrentCompilationUnit()
Dataflow Directional Tag Classes.
std::unique_ptr< DiagnosticConsumer > create(StringRef OutputFile, DiagnosticOptions *Diags, bool MergeChildRecords=false)
Returns a DiagnosticConsumer that serializes diagnostics to a bitcode file.
virtual ~ExecutionContext()
virtual std::string getCorpus()