#include "llvm/Demangle/Demangle.h"
#include "llvm/Demangle/StringViewExtras.h"
#include "llvm/Demangle/Utility.h"
#include <cctype>
#include <cstring>
#include <limits>
#include <string_view>
usingnamespacellvm;
OutputBuffer;
starts_with;
namespace {
struct Demangler { … };
}
void Demangler::decodeNumber(std::string_view &Mangled, unsigned long &Ret) { … }
bool Demangler::decodeBackrefPos(std::string_view &Mangled, long &Ret) { … }
bool Demangler::decodeBackref(std::string_view &Mangled,
std::string_view &Ret) { … }
void Demangler::parseSymbolBackref(OutputBuffer *Demangled,
std::string_view &Mangled) { … }
void Demangler::parseTypeBackref(std::string_view &Mangled) { … }
bool Demangler::isSymbolName(std::string_view Mangled) { … }
void Demangler::parseMangle(OutputBuffer *Demangled,
std::string_view &Mangled) { … }
void Demangler::parseQualified(OutputBuffer *Demangled,
std::string_view &Mangled) { … }
void Demangler::parseIdentifier(OutputBuffer *Demangled,
std::string_view &Mangled) { … }
bool Demangler::parseType(std::string_view &Mangled) { … }
void Demangler::parseLName(OutputBuffer *Demangled, std::string_view &Mangled,
unsigned long Len) { … }
Demangler::Demangler(std::string_view Mangled)
: … { … }
const char *Demangler::parseMangle(OutputBuffer *Demangled) { … }
char *llvm::dlangDemangle(std::string_view MangledName) { … }