50 lines · c
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-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_QUERY_QUERY_SESSION_H10#define LLVM_CLANG_TOOLS_EXTRA_CLANG_QUERY_QUERY_SESSION_H11 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), BindRoot(true), PrintMatcher(false),29 EnableProfile(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 37 bool BindRoot;38 bool PrintMatcher;39 bool EnableProfile;40 bool Terminate;41 42 TraversalKind TK;43 llvm::StringMap<ast_matchers::dynamic::VariantValue> NamedValues;44};45 46} // namespace query47} // namespace clang48 49#endif50