| //===-- PdbAstBuilder.h -----------------------------------*- C++ -*-===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef LLDB_SOURCE_PLUGINS_SYMBOLFILE_NATIVEPDB_PDBASTBUILDER_H |
| #define LLDB_SOURCE_PLUGINS_SYMBOLFILE_NATIVEPDB_PDBASTBUILDER_H |
| |
| #include "lldb/Symbol/CompilerDecl.h" |
| #include "lldb/Symbol/CompilerDeclContext.h" |
| #include "lldb/Symbol/CompilerType.h" |
| #include "lldb/lldb-types.h" |
| #include "llvm/ADT/StringRef.h" |
| |
| #include "PdbSymUid.h" |
| |
| namespace lldb_private { |
| class Stream; |
| |
| namespace npdb { |
| |
| class PdbAstBuilder { |
| public: |
| virtual ~PdbAstBuilder() = default; |
| |
| virtual CompilerDecl GetOrCreateDeclForUid(PdbSymUid uid) = 0; |
| virtual CompilerDeclContext GetOrCreateDeclContextForUid(PdbSymUid uid) = 0; |
| virtual CompilerDeclContext GetParentDeclContext(PdbSymUid uid) = 0; |
| |
| virtual void EnsureFunction(PdbCompilandSymId func_id) = 0; |
| virtual void EnsureInlinedFunction(PdbCompilandSymId inlinesite_id) = 0; |
| virtual void EnsureBlock(PdbCompilandSymId block_id) = 0; |
| virtual void EnsureVariable(PdbCompilandSymId scope_id, |
| PdbCompilandSymId var_id) = 0; |
| virtual void EnsureVariable(PdbGlobalSymId var_id) = 0; |
| |
| virtual CompilerType GetOrCreateType(PdbTypeSymId type) = 0; |
| virtual CompilerType GetOrCreateTypedefType(PdbGlobalSymId id) = 0; |
| virtual bool CompleteType(CompilerType ct) = 0; |
| |
| virtual void ParseDeclsForContext(CompilerDeclContext context) = 0; |
| |
| virtual CompilerDeclContext FindNamespaceDecl(CompilerDeclContext parent_ctx, |
| llvm::StringRef name) = 0; |
| |
| virtual void Dump(Stream &stream, llvm::StringRef filter, |
| bool show_color) = 0; |
| }; |
| |
| } // namespace npdb |
| } // namespace lldb_private |
| |
| #endif // LLDB_SOURCE_PLUGINS_SYMBOLFILE_NATIVEPDB_PDBASTBUILDER_H |