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
17namespace clang {
18
19class ASTUnit;
20
21namespace query {
22
23/// Represents the state for a particular clang-query session.
24class QuerySession {
25public:
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
50

source code of clang-tools-extra/clang-query/QuerySession.h