DWARFASTParser.h revision 296417
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 18class DWARFDIE; 19 20class DWARFASTParser 21{ 22public: 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