1292932Sdim//===-- DWARFASTParser.h ----------------------------------------*- C++ -*-===// 2292932Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6292932Sdim// 7292932Sdim//===----------------------------------------------------------------------===// 8292932Sdim 9292932Sdim#ifndef SymbolFileDWARF_DWARFASTParser_h_ 10292932Sdim#define SymbolFileDWARF_DWARFASTParser_h_ 11292932Sdim 12292932Sdim#include "DWARFDefines.h" 13292932Sdim#include "lldb/Core/PluginInterface.h" 14344779Sdim#include "lldb/Symbol/SymbolFile.h" 15292932Sdim#include "lldb/Symbol/CompilerDecl.h" 16292932Sdim#include "lldb/Symbol/CompilerDeclContext.h" 17292932Sdim 18292932Sdimclass DWARFDIE; 19344779Sdimnamespace lldb_private { 20344779Sdimclass CompileUnit; 21344779Sdimclass ExecutionContext; 22344779Sdim} 23344779Sdimclass SymbolFileDWARF; 24292932Sdim 25314564Sdimclass DWARFASTParser { 26292932Sdimpublic: 27314564Sdim virtual ~DWARFASTParser() {} 28292932Sdim 29314564Sdim virtual lldb::TypeSP ParseTypeFromDWARF(const lldb_private::SymbolContext &sc, 30314564Sdim const DWARFDIE &die, 31314564Sdim bool *type_is_new_ptr) = 0; 32292932Sdim 33314564Sdim virtual lldb_private::Function * 34344779Sdim ParseFunctionFromDWARF(lldb_private::CompileUnit &comp_unit, 35314564Sdim const DWARFDIE &die) = 0; 36292932Sdim 37314564Sdim virtual bool 38314564Sdim CompleteTypeFromDWARF(const DWARFDIE &die, lldb_private::Type *type, 39314564Sdim lldb_private::CompilerType &compiler_type) = 0; 40292932Sdim 41314564Sdim virtual lldb_private::CompilerDecl 42314564Sdim GetDeclForUIDFromDWARF(const DWARFDIE &die) = 0; 43292932Sdim 44314564Sdim virtual lldb_private::CompilerDeclContext 45314564Sdim GetDeclContextForUIDFromDWARF(const DWARFDIE &die) = 0; 46292932Sdim 47314564Sdim virtual lldb_private::CompilerDeclContext 48314564Sdim GetDeclContextContainingUIDFromDWARF(const DWARFDIE &die) = 0; 49292932Sdim 50360784Sdim virtual void EnsureAllDIEsInDeclContextHaveBeenParsed( 51360784Sdim lldb_private::CompilerDeclContext decl_context) = 0; 52344779Sdim 53344779Sdim static llvm::Optional<lldb_private::SymbolFile::ArrayInfo> 54344779Sdim ParseChildArrayInfo(const DWARFDIE &parent_die, 55344779Sdim const lldb_private::ExecutionContext *exe_ctx = nullptr); 56292932Sdim}; 57292932Sdim 58314564Sdim#endif // SymbolFileDWARF_DWARFASTParser_h_ 59