Go to the documentation of this file.
9 #ifndef LLDB_SOURCE_PLUGINS_EXPRESSIONPARSER_CLANG_CLANGPERSISTENTVARIABLES_H
10 #define LLDB_SOURCE_PLUGINS_EXPRESSIONPARSER_CLANG_CLANGPERSISTENTVARIABLES_H
12 #include "llvm/ADT/DenseMap.h"
21 class ClangASTImporter;
22 class ClangModulesDeclVendor;
24 class TypeSystemClang;
47 lldb::ExpressionVariableSP
62 name.append(
"<user expression ");
68 llvm::Optional<CompilerType>
118 #endif // LLDB_SOURCE_PLUGINS_EXPRESSIONPARSER_CLANG_CLANGPERSISTENTVARIABLES_H
clang::NamedDecl * GetPersistentDecl(ConstString name)
ClangModulesDeclVendor::ModuleVector m_hand_loaded_clang_modules
These are Clang modules we hand-loaded; these are the highest- priority source for macros.
clang::NamedDecl * m_decl
The persistent decl.
std::shared_ptr< ClangASTImporter > GetClangASTImporter()
LLVMCastKind getKind() const
std::vector< ModuleID > ModuleVector
llvm::Optional< CompilerType > GetCompilerTypeFromPersistentDecl(ConstString type_name) override
void AddHandLoadedClangModule(ClangModulesDeclVendor::ModuleID module)
std::shared_ptr< ClangModulesDeclVendor > GetClangModulesDeclVendor()
string(SUBSTRING ${p} 10 -1 pStripped) if($
uint32_t m_next_user_file_id
The counter used by GetNextExprFileName.
~ClangPersistentVariables() override=default
const ClangModulesDeclVendor::ModuleVector & GetHandLoadedClangModules()
static bool classof(const PersistentExpressionState *pv)
std::shared_ptr< Target > m_target_sp
TypeSystemClang * m_context
The TypeSystemClang for the ASTContext of m_decl.
ConstString GetNextPersistentVariableName(bool is_error=false) override
Return a new persistent variable name with the specified prefix.
void RegisterPersistentDecl(ConstString name, clang::NamedDecl *decl, TypeSystemClang *ctx)
Generic representation of a type in a programming language.
llvm::DenseMap< const char *, PersistentDecl > PersistentDeclMap
uint32_t m_next_persistent_variable_id
lldb::ExpressionVariableSP CreatePersistentVariable(const lldb::ValueObjectSP &valobj_sp) override
std::shared_ptr< ClangModulesDeclVendor > m_modules_decl_vendor_sp
A class that represents a running process on the host machine.
A TypeSystem implementation based on Clang.
std::string GetNextExprFileName()
Returns the next file name that should be used for user expressions.
PersistentDeclMap m_persistent_decls
Persistent entities declared by the user.
std::shared_ptr< ClangASTImporter > m_ast_importer_sp
llvm::StringRef GetPersistentVariablePrefix(bool is_error=false) const override
ClangPersistentVariables(std::shared_ptr< Target > target_sp)
void RemovePersistentVariable(lldb::ExpressionVariableSP variable) override
ByteOrder
Byte ordering definitions.