This allows these functions to be re-used by a forthcoming PDBASTParser. The functions in question are CanCompleteType, CompleteType, and CanImport. Conceptually, these functions belong on ClangASTImporter anyway, and previously they were just ping ponging around through a few levels of indirection to end up there as well, so this patch actually makes the code somewhat simpler. A few methods were moved to a new file called ClangUtil, so that they can be shared between ClangASTImporter and ClangASTContext without creating a circular dependency between those two cpp files. Differential Revision: http://reviews.llvm.org/D18381 llvm-svn: 264685
54 lines
1.7 KiB
C++
54 lines
1.7 KiB
C++
//===-- DWARFASTParser.h ----------------------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef SymbolFileDWARF_DWARFASTParser_h_
|
|
#define SymbolFileDWARF_DWARFASTParser_h_
|
|
|
|
#include "DWARFDefines.h"
|
|
#include "lldb/Core/PluginInterface.h"
|
|
#include "lldb/Symbol/CompilerDecl.h"
|
|
#include "lldb/Symbol/CompilerDeclContext.h"
|
|
|
|
class DWARFDIE;
|
|
|
|
class DWARFASTParser
|
|
{
|
|
public:
|
|
virtual ~DWARFASTParser() {}
|
|
|
|
virtual lldb::TypeSP
|
|
ParseTypeFromDWARF (const lldb_private::SymbolContext& sc,
|
|
const DWARFDIE &die,
|
|
lldb_private::Log *log,
|
|
bool *type_is_new_ptr) = 0;
|
|
|
|
virtual lldb_private::Function *
|
|
ParseFunctionFromDWARF (const lldb_private::SymbolContext& sc,
|
|
const DWARFDIE &die) = 0;
|
|
|
|
virtual bool
|
|
CompleteTypeFromDWARF (const DWARFDIE &die,
|
|
lldb_private::Type *type,
|
|
lldb_private::CompilerType &compiler_type) = 0;
|
|
|
|
virtual lldb_private::CompilerDecl
|
|
GetDeclForUIDFromDWARF (const DWARFDIE &die) = 0;
|
|
|
|
virtual lldb_private::CompilerDeclContext
|
|
GetDeclContextForUIDFromDWARF (const DWARFDIE &die) = 0;
|
|
|
|
virtual lldb_private::CompilerDeclContext
|
|
GetDeclContextContainingUIDFromDWARF (const DWARFDIE &die) = 0;
|
|
|
|
virtual std::vector<DWARFDIE>
|
|
GetDIEForDeclContext (lldb_private::CompilerDeclContext decl_context) = 0;
|
|
};
|
|
|
|
#endif // SymbolFileDWARF_DWARFASTParser_h_
|