1 //===-- DWARFASTParser.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 SymbolFileDWARF_DWARFASTParser_h_ 11 #define SymbolFileDWARF_DWARFASTParser_h_ 12 13 #include "DWARFDefines.h" 14 #include "lldb/Core/PluginInterface.h" 15 #include "lldb/Symbol/CompilerDecl.h" 16 #include "lldb/Symbol/CompilerDeclContext.h" 17 18 class DWARFDIE; 19 20 class DWARFASTParser 21 { 22 public: 23 virtual ~DWARFASTParser() {} 24 25 virtual lldb::TypeSP 26 ParseTypeFromDWARF (const lldb_private::SymbolContext& sc, 27 const DWARFDIE &die, 28 lldb_private::Log *log, 29 bool *type_is_new_ptr) = 0; 30 31 virtual lldb_private::Function * 32 ParseFunctionFromDWARF (const lldb_private::SymbolContext& sc, 33 const DWARFDIE &die) = 0; 34 35 virtual bool 36 CanCompleteType (const lldb_private::CompilerType &compiler_type) 37 { 38 return false; 39 } 40 41 virtual bool 42 CompleteType (const lldb_private::CompilerType &compiler_type) 43 { 44 return false; 45 } 46 47 virtual bool 48 CompleteTypeFromDWARF (const DWARFDIE &die, 49 lldb_private::Type *type, 50 lldb_private::CompilerType &compiler_type) = 0; 51 52 virtual lldb_private::CompilerDecl 53 GetDeclForUIDFromDWARF (const DWARFDIE &die) = 0; 54 55 virtual lldb_private::CompilerDeclContext 56 GetDeclContextForUIDFromDWARF (const DWARFDIE &die) = 0; 57 58 virtual lldb_private::CompilerDeclContext 59 GetDeclContextContainingUIDFromDWARF (const DWARFDIE &die) = 0; 60 61 virtual std::vector<DWARFDIE> 62 GetDIEForDeclContext (lldb_private::CompilerDeclContext decl_context) = 0; 63 }; 64 65 #endif // SymbolFileDWARF_DWARFASTParser_h_ 66