9#ifndef LLDB_CORE_RICHMANGLINGCONTEXT_H
10#define LLDB_CORE_RICHMANGLINGCONTEXT_H
17#include "llvm/ADT/Any.h"
18#include "llvm/ADT/SmallString.h"
19#include "llvm/Demangle/Demangle.h"
63 llvm::ItaniumPartialDemangler
m_ipd;
88 template <
class ParserT>
static ParserT *
get(llvm::Any parser) {
89 assert(parser.has_value());
90 assert(llvm::any_cast<ParserT *>(&parser));
91 return *llvm::any_cast<ParserT *>(&parser);
A uniqued constant string class.
Uniform wrapper for access to rich mangling information from different providers.
llvm::StringRef ParseFunctionDeclContextName()
Get the context name for a function.
@ ItaniumPartialDemangler
llvm::StringRef ParseFunctionBaseName()
Get the base name of a function.
void ResetProvider(InfoProvider new_provider)
Clean up memory and set a new info provider for this instance.
bool FromItaniumName(ConstString mangled)
Use the ItaniumPartialDemangler to obtain rich mangling information from the given mangled name.
char * m_ipd_buf
Note: m_ipd_buf is a raw pointer due to being resized by realloc via ItaniumPartialDemangler.
llvm::StringRef processIPDStrResult(char *ipd_res, size_t res_len)
Uniform handling of string buffers for ItaniumPartialDemangler.
bool FromCxxMethodName(ConstString demangled)
Use the legacy language parser implementation to obtain rich mangling information from the given dema...
void ResetCxxMethodParser()
Clean up memory when using PluginCxxLanguage.
InfoProvider m_provider
Selects the rich mangling info provider.
llvm::StringRef ParseFullName()
Get the entire demangled name.
static ParserT * get(llvm::Any parser)
Cast the given parser to the given type.
llvm::Any m_cxx_method_parser
Members for PluginCxxLanguage Cannot forward declare inner class CPlusPlusLanguage::MethodName.
llvm::ItaniumPartialDemangler m_ipd
Members for ItaniumPartialDemangler.
bool IsCtorOrDtor() const
If this symbol describes a constructor or destructor.
A class that represents a running process on the host machine.