]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - source/Plugins/SymbolFile/DWARF/DWARFASTParserJava.h
Vendor import of lldb release_39 branch r276489:
[FreeBSD/FreeBSD.git] / 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 {
32 public:
33     DWARFASTParserJava(lldb_private::JavaASTContext &ast);
34     ~DWARFASTParserJava() override;
35
36     lldb::TypeSP
37     ParseTypeFromDWARF(const lldb_private::SymbolContext &sc, const DWARFDIE &die, lldb_private::Log *log,
38                        bool *type_is_new_ptr) override;
39
40     lldb_private::Function *
41     ParseFunctionFromDWARF(const lldb_private::SymbolContext &sc, const DWARFDIE &die) override;
42
43     bool
44     CompleteTypeFromDWARF(const DWARFDIE &die, lldb_private::Type *type,
45                           lldb_private::CompilerType &java_type) override;
46
47     lldb_private::CompilerDeclContext
48     GetDeclContextForUIDFromDWARF(const DWARFDIE &die) override
49     {
50         return lldb_private::CompilerDeclContext();
51     }
52
53     lldb_private::CompilerDeclContext
54     GetDeclContextContainingUIDFromDWARF(const DWARFDIE &die) override
55     {
56         return lldb_private::CompilerDeclContext();
57     }
58
59     lldb_private::CompilerDecl
60     GetDeclForUIDFromDWARF(const DWARFDIE &die) override
61     {
62         return lldb_private::CompilerDecl();
63     }
64
65     std::vector<DWARFDIE>
66     GetDIEForDeclContext(lldb_private::CompilerDeclContext decl_context) override
67     {
68         return std::vector<DWARFDIE>();
69     }
70
71     void
72     ParseChildMembers(const DWARFDIE &parent_die, lldb_private::CompilerType &class_compiler_type);
73
74 private:
75     lldb_private::JavaASTContext &m_ast;
76
77     lldb::TypeSP
78     ParseBaseTypeFromDIE(const DWARFDIE &die);
79
80     lldb::TypeSP
81     ParseArrayTypeFromDIE(const DWARFDIE &die);
82
83     lldb::TypeSP
84     ParseReferenceTypeFromDIE(const DWARFDIE &die);
85
86     lldb::TypeSP
87     ParseClassTypeFromDIE(const DWARFDIE &die, bool &is_new_type);
88 };
89
90 #endif // SymbolFileDWARF_DWARFASTParserJava_h_