#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_QUERY_QUERY_H
#define LLVM_CLANG_TOOLS_EXTRA_CLANG_QUERY_QUERY_H
#include "QuerySession.h"
#include "clang/ASTMatchers/Dynamic/VariantValue.h"
#include "llvm/ADT/IntrusiveRefCntPtr.h"
#include <string>
namespace clang {
namespace query {
enum OutputKind { … };
enum QueryKind { … };
class QuerySession;
struct Query : llvm::RefCountedBase<Query> { … };
QueryRef;
struct InvalidQuery : Query { … };
struct NoOpQuery : Query { … };
struct HelpQuery : Query { … };
struct QuitQuery : Query { … };
struct MatchQuery : Query { … };
struct LetQuery : Query { … };
template <typename T> struct SetQueryKind { … };
template <> struct SetQueryKind<bool> { … };
template <> struct SetQueryKind<OutputKind> { … };
template <> struct SetQueryKind<TraversalKind> { … };
template <typename T> struct SetQuery : Query { … };
struct SetExclusiveOutputQuery : Query { … };
struct SetNonExclusiveOutputQuery : Query { … };
struct EnableOutputQuery : SetNonExclusiveOutputQuery { … };
struct DisableOutputQuery : SetNonExclusiveOutputQuery { … };
struct FileQuery : Query { … };
}
}
#endif