//===--- ASTContext.h - Context to hold long-lived AST nodes ----*- C++ -*-===////// The LLVM Compiler Infrastructure//// This file is distributed under the University of Illinois Open Source// License. See LICENSE.TXT for details.////===----------------------------------------------------------------------===////// This file defines the ASTContext interface.////===----------------------------------------------------------------------===//#ifndef LLVM_CLANG_AST_ASTCONTEXT_H#define LLVM_CLANG_AST_ASTCONTEXT_H#include"clang/Basic/IdentifierTable.h"#include"clang/Basic/LangOptions.h"#include"clang/Basic/OperatorKinds.h"#include"clang/Basic/PartialDiagnostic.h"#include"clang/AST/Attr.h"#include"clang/AST/Decl.h"#include"clang/AST/NestedNameSpecifier.h"#include"clang/AST/PrettyPrinter.h"#include"clang/AST/TemplateName.h"#include"clang/AST/Type.h"#include"clang/AST/CanonicalType.h"#include"llvm/ADT/DenseMap.h"#include"llvm/ADT/FoldingSet.h"#include"llvm/ADT/OwningPtr.h"#include"llvm/ADT/SmallPtrSet.h"#include"llvm/Support/Allocator.h"#include<vector>namespacellvm{structfltSemantics;classraw_ostream;}namespaceclang{classFileManager;classASTRecordLayout;classBlockExpr;classCharUnits;classDiagnostic;classExpr;classExternalASTSource;classIdentifierTable;classSelectorTable;classSourceManager;classTargetInfo;// DeclsclassDeclContext;classCXXMethodDecl;classCXXRecordDecl;classDecl;classFieldDecl;classObjCIvarDecl;classObjCIvarRefExpr;classObjCPropertyDecl;classRecordDecl;classStoredDeclsMap;classTagDecl;classTemplateTypeParmDecl;classTranslationUnitDecl;classTypeDecl;classTypedefDecl;classUsingDecl;classUsingShadowDecl;classUnresolvedSetIterator;namespaceBuiltin{classContext;}/// \brief A vector of C++ member functions that is optimized for/// storing a single method.classCXXMethodVector{/// \brief Storage for the vector.////// When the low bit is zero, this is a const CXXMethodDecl *. When the/// low bit is one, this is a std::vector<const CXXMethodDecl *> *.mutable<