Merge branch 'addmainunit4-altlink-sharedstmt-dieref-dwz3-inlinebug-testcategory...
[lldb.git] / clang-tools-extra / clang-query / QuerySession.h
1 //===--- QuerySession.h - clang-query ---------------------------*- 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
9 #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_QUERY_QUERY_SESSION_H
10 #define LLVM_CLANG_TOOLS_EXTRA_CLANG_QUERY_QUERY_SESSION_H
11
12 #include "clang/AST/ASTTypeTraits.h"
13 #include "clang/ASTMatchers/Dynamic/VariantValue.h"
14 #include "llvm/ADT/ArrayRef.h"
15 #include "llvm/ADT/StringMap.h"
16
17 namespace clang {
18
19 class ASTUnit;
20
21 namespace query {
22
23 /// Represents the state for a particular clang-query session.
24 class QuerySession {
25 public:
26   QuerySession(llvm::ArrayRef<std::unique_ptr<ASTUnit>> ASTs)
27       : ASTs(ASTs), PrintOutput(false), DiagOutput(true),
28         DetailedASTOutput(false), SrcLocOutput(false), BindRoot(true),
29         PrintMatcher(false), Terminate(false), TK(TK_AsIs) {}
30
31   llvm::ArrayRef<std::unique_ptr<ASTUnit>> ASTs;
32
33   bool PrintOutput;
34   bool DiagOutput;
35   bool DetailedASTOutput;
36   bool SrcLocOutput;
37
38   bool BindRoot;
39   bool PrintMatcher;
40   bool Terminate;
41
42   TraversalKind TK;
43   llvm::StringMap<ast_matchers::dynamic::VariantValue> NamedValues;
44 };
45
46 } // namespace query
47 } // namespace clang
48
49 #endif