9#ifndef LLDB_SOURCE_PLUGINS_EXPRESSIONPARSER_CLANG_CLANGPERSISTENTVARIABLES_H
10#define LLDB_SOURCE_PLUGINS_EXPRESSIONPARSER_CLANG_CLANGPERSISTENTVARIABLES_H
12#include "llvm/ADT/DenseMap.h"
22class ClangASTImporter;
23class ClangModulesDeclVendor;
35 :
public llvm::RTTIExtends<ClangPersistentVariables,
36 PersistentExpressionState> {
54 uint32_t addr_byte_size)
override;
63 name.append(
"<user expression ");
69 std::optional<CompilerType>
73 std::shared_ptr<TypeSystemClang> ctx);
std::vector< ModuleID > ModuleVector
"lldb/Expression/ClangPersistentVariables.h" Manages persistent values that need to be preserved betw...
std::string GetNextExprFileName()
Returns the next file name that should be used for user expressions.
void RegisterPersistentDecl(ConstString name, clang::NamedDecl *decl, std::shared_ptr< TypeSystemClang > ctx)
uint32_t m_next_persistent_variable_id
ConstString GetNextPersistentVariableName(bool is_error=false) override
ClangModulesDeclVendor::ModuleVector m_hand_loaded_clang_modules
These are Clang modules we hand-loaded; these are the highest- priority source for macros.
std::shared_ptr< ClangModulesDeclVendor > GetClangModulesDeclVendor()
lldb::ExpressionVariableSP CreatePersistentVariable(const lldb::ValueObjectSP &valobj_sp) override
void AddHandLoadedClangModule(ClangModulesDeclVendor::ModuleID module)
clang::NamedDecl * GetPersistentDecl(ConstString name)
void RemovePersistentVariable(lldb::ExpressionVariableSP variable) override
std::shared_ptr< ClangModulesDeclVendor > m_modules_decl_vendor_sp
~ClangPersistentVariables() override=default
llvm::DenseMap< const char *, PersistentDecl > PersistentDeclMap
PersistentDeclMap m_persistent_decls
Persistent entities declared by the user.
std::shared_ptr< ClangASTImporter > GetClangASTImporter()
std::optional< CompilerType > GetCompilerTypeFromPersistentDecl(ConstString type_name) override
llvm::StringRef GetPersistentVariablePrefix(bool is_error=false) const override
const ClangModulesDeclVendor::ModuleVector & GetHandLoadedClangModules()
std::shared_ptr< ClangASTImporter > m_ast_importer_sp
std::shared_ptr< Target > m_target_sp
uint32_t m_next_user_file_id
The counter used by GetNextExprFileName.
Generic representation of a type in a programming language.
A uniqued constant string class.
"lldb/Target/ExecutionContextScope.h" Inherit from this if your object can reconstruct its execution ...
A class that represents a running process on the host machine.
std::shared_ptr< lldb_private::ValueObject > ValueObjectSP
std::shared_ptr< lldb_private::ExpressionVariable > ExpressionVariableSP
ByteOrder
Byte ordering definitions.
std::weak_ptr< lldb_private::TypeSystem > TypeSystemWP
clang::NamedDecl * m_decl
The persistent decl.
lldb::TypeSystemWP m_context
The TypeSystemClang for the ASTContext of m_decl.