1 //===-- PDBASTParser.h ------------------------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef LLDB_PLUGINS_SYMBOLFILE_PDB_PDBASTPARSER_H 11 #define LLDB_PLUGINS_SYMBOLFILE_PDB_PDBASTPARSER_H 12 13 #include "lldb/lldb-forward.h" 14 15 #include "lldb/Symbol/ClangASTImporter.h" 16 17 namespace clang { 18 class CharUnits; 19 class CXXRecordDecl; 20 class FieldDecl; 21 class RecordDecl; 22 } 23 24 namespace lldb_private { 25 class ClangASTContext; 26 class CompilerType; 27 } 28 29 namespace llvm { 30 namespace pdb { 31 class PDBSymbol; 32 class PDBSymbolData; 33 class PDBSymbolTypeBuiltin; 34 } 35 } 36 37 class PDBASTParser { 38 public: 39 PDBASTParser(lldb_private::ClangASTContext &ast); 40 ~PDBASTParser(); 41 42 lldb::TypeSP CreateLLDBTypeFromPDBType(const llvm::pdb::PDBSymbol &type); 43 44 private: 45 bool AddEnumValue(lldb_private::CompilerType enum_type, 46 const llvm::pdb::PDBSymbolData &data) const; 47 48 lldb_private::ClangASTContext &m_ast; 49 lldb_private::ClangASTImporter m_ast_importer; 50 }; 51 52 #endif // SymbolFileDWARF_DWARFASTParserClang_h_ 53