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 { 19 class CharUnits; 20 class CXXRecordDecl; 21 class FieldDecl; 22 class RecordDecl; 23 } 24 25 namespace lldb_private 26 { 27 class ClangASTContext; 28 class CompilerType; 29 } 30 31 namespace llvm 32 { 33 namespace pdb 34 { 35 class PDBSymbol; 36 class PDBSymbolData; 37 class PDBSymbolTypeBuiltin; 38 } 39 } 40 41 class PDBASTParser 42 { 43 public: 44 PDBASTParser(lldb_private::ClangASTContext &ast); 45 ~PDBASTParser(); 46 47 lldb::TypeSP 48 CreateLLDBTypeFromPDBType(const llvm::pdb::PDBSymbol &type); 49 50 private: 51 bool 52 AddEnumValue(lldb_private::CompilerType enum_type, const llvm::pdb::PDBSymbolData &data) const; 53 54 lldb_private::ClangASTContext &m_ast; 55 lldb_private::ClangASTImporter m_ast_importer; 56 }; 57 58 #endif // SymbolFileDWARF_DWARFASTParserClang_h_ 59