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 class PDBSymbol; 34 class PDBSymbolData; 35 class PDBSymbolTypeBuiltin; 36 } 37 38 class PDBASTParser 39 { 40 public: 41 PDBASTParser(lldb_private::ClangASTContext &ast); 42 ~PDBASTParser(); 43 44 lldb::TypeSP 45 CreateLLDBTypeFromPDBType(const llvm::PDBSymbol &type); 46 47 private: 48 bool 49 AddEnumValue(lldb_private::CompilerType enum_type, const llvm::PDBSymbolData &data) const; 50 51 lldb_private::ClangASTContext &m_ast; 52 lldb_private::ClangASTImporter m_ast_importer; 53 }; 54 55 #endif // SymbolFileDWARF_DWARFASTParserClang_h_ 56