DWARFASTParser.h revision 292932
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