]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserJava.h
MFV r336950: 9290 device removal reduces redundancy of mirrors
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / source / Plugins / SymbolFile / DWARF / DWARFASTParserJava.h
1 //===-- DWARFASTParserJava.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_DWARFASTParserJava_h_
11 #define SymbolFileDWARF_DWARFASTParserJava_h_
12
13 // C Includes
14 // C++ Includes
15 // Other libraries and framework includes
16 #include "llvm/ADT/DenseMap.h"
17 #include "llvm/ADT/SmallPtrSet.h"
18 #include "llvm/ADT/SmallVector.h"
19
20 // Project includes
21 #include "DWARFASTParser.h"
22 #include "DWARFDIE.h"
23 #include "DWARFDefines.h"
24 #include "lldb/Core/PluginInterface.h"
25 #include "lldb/Symbol/JavaASTContext.h"
26
27 class DWARFDebugInfoEntry;
28 class DWARFDIECollection;
29
30 class DWARFASTParserJava : public DWARFASTParser {
31 public:
32   DWARFASTParserJava(lldb_private::JavaASTContext &ast);
33   ~DWARFASTParserJava() override;
34
35   lldb::TypeSP ParseTypeFromDWARF(const lldb_private::SymbolContext &sc,
36                                   const DWARFDIE &die, lldb_private::Log *log,
37                                   bool *type_is_new_ptr) override;
38
39   lldb_private::Function *
40   ParseFunctionFromDWARF(const lldb_private::SymbolContext &sc,
41                          const DWARFDIE &die) override;
42
43   bool CompleteTypeFromDWARF(const DWARFDIE &die, lldb_private::Type *type,
44                              lldb_private::CompilerType &java_type) override;
45
46   lldb_private::CompilerDeclContext
47   GetDeclContextForUIDFromDWARF(const DWARFDIE &die) override {
48     return lldb_private::CompilerDeclContext();
49   }
50
51   lldb_private::CompilerDeclContext
52   GetDeclContextContainingUIDFromDWARF(const DWARFDIE &die) override {
53     return lldb_private::CompilerDeclContext();
54   }
55
56   lldb_private::CompilerDecl
57   GetDeclForUIDFromDWARF(const DWARFDIE &die) override {
58     return lldb_private::CompilerDecl();
59   }
60
61   std::vector<DWARFDIE> GetDIEForDeclContext(
62       lldb_private::CompilerDeclContext decl_context) override {
63     return std::vector<DWARFDIE>();
64   }
65
66   void ParseChildMembers(const DWARFDIE &parent_die,
67                          lldb_private::CompilerType &class_compiler_type);
68
69 private:
70   lldb_private::JavaASTContext &m_ast;
71
72   lldb::TypeSP ParseBaseTypeFromDIE(const DWARFDIE &die);
73
74   lldb::TypeSP ParseArrayTypeFromDIE(const DWARFDIE &die);
75
76   lldb::TypeSP ParseReferenceTypeFromDIE(const DWARFDIE &die);
77
78   lldb::TypeSP ParseClassTypeFromDIE(const DWARFDIE &die, bool &is_new_type);
79 };
80
81 #endif // SymbolFileDWARF_DWARFASTParserJava_h_