DWARFASTParser.h revision 314564
1292932Sdim//===-- DWARFASTParser.h ----------------------------------------*- C++ -*-===//
2292932Sdim//
3292932Sdim//                     The LLVM Compiler Infrastructure
4292932Sdim//
5292932Sdim// This file is distributed under the University of Illinois Open Source
6292932Sdim// License. See LICENSE.TXT for details.
7292932Sdim//
8292932Sdim//===----------------------------------------------------------------------===//
9292932Sdim
10292932Sdim#ifndef SymbolFileDWARF_DWARFASTParser_h_
11292932Sdim#define SymbolFileDWARF_DWARFASTParser_h_
12292932Sdim
13292932Sdim#include "DWARFDefines.h"
14292932Sdim#include "lldb/Core/PluginInterface.h"
15292932Sdim#include "lldb/Symbol/CompilerDecl.h"
16292932Sdim#include "lldb/Symbol/CompilerDeclContext.h"
17292932Sdim
18292932Sdimclass DWARFDIE;
19292932Sdim
20314564Sdimclass DWARFASTParser {
21292932Sdimpublic:
22314564Sdim  virtual ~DWARFASTParser() {}
23292932Sdim
24314564Sdim  virtual lldb::TypeSP ParseTypeFromDWARF(const lldb_private::SymbolContext &sc,
25314564Sdim                                          const DWARFDIE &die,
26314564Sdim                                          lldb_private::Log *log,
27314564Sdim                                          bool *type_is_new_ptr) = 0;
28292932Sdim
29314564Sdim  virtual lldb_private::Function *
30314564Sdim  ParseFunctionFromDWARF(const lldb_private::SymbolContext &sc,
31314564Sdim                         const DWARFDIE &die) = 0;
32292932Sdim
33314564Sdim  virtual bool
34314564Sdim  CompleteTypeFromDWARF(const DWARFDIE &die, lldb_private::Type *type,
35314564Sdim                        lldb_private::CompilerType &compiler_type) = 0;
36292932Sdim
37314564Sdim  virtual lldb_private::CompilerDecl
38314564Sdim  GetDeclForUIDFromDWARF(const DWARFDIE &die) = 0;
39292932Sdim
40314564Sdim  virtual lldb_private::CompilerDeclContext
41314564Sdim  GetDeclContextForUIDFromDWARF(const DWARFDIE &die) = 0;
42292932Sdim
43314564Sdim  virtual lldb_private::CompilerDeclContext
44314564Sdim  GetDeclContextContainingUIDFromDWARF(const DWARFDIE &die) = 0;
45292932Sdim
46314564Sdim  virtual std::vector<DWARFDIE>
47314564Sdim  GetDIEForDeclContext(lldb_private::CompilerDeclContext decl_context) = 0;
48292932Sdim};
49292932Sdim
50314564Sdim#endif // SymbolFileDWARF_DWARFASTParser_h_
51