Go to the documentation of this file.
42 #if defined(GLOG_OS_WINDOWS)
48 #if !defined(GLOG_OS_WINDOWS)
114 {
"a",
"signed char" },
115 {
"h",
"unsigned char" },
117 {
"t",
"unsigned short" },
119 {
"j",
"unsigned int" },
121 {
"m",
"unsigned long" },
122 {
"x",
"long long" },
123 {
"y",
"unsigned long long" },
125 {
"o",
"unsigned __int128" },
128 {
"e",
"long double" },
129 {
"g",
"__float128" },
137 {
"Sa",
"allocator" },
138 {
"Sb",
"basic_string" },
146 {
"Sd",
"iostream" },
167 while (*
str !=
'\0') {
176 for (
int i = 0;
i <
n; ++
i) {
177 if (
str[
i] ==
'\0') {
195 char *out,
size_t out_size) {
199 state->
out_end = out + out_size;
233 const char *
p = char_class;
234 for (; *
p !=
'\0'; ++
p) {
251 if (parse_func(state)) {
252 while (parse_func(state)) {
264 while (parse_func(state)) {
290 return c >=
'a' && c <=
'z';
294 return (c >=
'a' && c <=
'z') || (c >=
'A' && c <=
'Z');
298 return c >=
'0' && c <=
'9';
307 while (
str[
i] !=
'\0') {
376 state->
append = prev_value;
406 static const char anon_prefix[] =
"_GLOBAL__N_";
408 static_cast<int>(
sizeof(anon_prefix)) - 1 &&
578 bool has_something =
false;
584 has_something =
true;
645 for (;*
p !=
'\0'; ++
p) {
654 if (number_out !=
NULL) {
655 *number_out =
number * sign;
666 for (;*
p !=
'\0'; ++
p) {
667 if (!
IsDigit(*
p) && !(*
p >=
'a' && *
p <=
'f')) {
682 for (;*
p !=
'\0'; ++
p) {
683 if (!
IsDigit(*
p) && !(*
p >=
'A' && *
p <=
'Z')) {
894 const char *
const prev_name = state->
prev_name;
903 const char *
const prev_name = state->
prev_name;
990 int num_cv_qualifiers = 0;
994 return num_cv_qualifiers > 0;
1009 State copy = *state;
1019 State copy = *state;
1031 State copy = *state;
1050 State copy = *state;
1067 State copy = *state;
1084 State copy = *state;
1104 State copy = *state;
1123 State copy = *state;
1159 State copy = *state;
1207 State copy = *state;
1241 State copy = *state;
1259 State copy = *state;
1276 State copy = *state;
1290 if (
p->real_name[0] !=
'\0') {
1327 bool Demangle(
const char *mangled,
char *out,
size_t out_size) {
1328 #if defined(GLOG_OS_WINDOWS)
1329 #if defined(HAVE_DBGHELP)
1340 const char *lparen = strchr(mangled,
'(');
1343 const char *rparen = strchr(lparen,
')');
1344 size_t length =
static_cast<size_t>(rparen - lparen) - 1;
1350 return UnDecorateSymbolName(mangled, out, out_size, UNDNAME_COMPLETE);
1359 InitState(&state, mangled, out, out_size);
1364 _END_GOOGLE_NAMESPACE_
static bool ParseExpression(State *state)
static bool ParseLocalSourceName(State *state)
static bool ParseTemplateTemplateParam(State *state)
static bool RestoreAppend(State *state, bool prev_value)
static bool ParsePrefix(State *state)
static bool ParseSubstitution(State *state)
static bool ParseCtorDtorName(State *state)
static void MaybeIncreaseNestLevel(State *state)
GLenum GLuint GLenum GLsizei length
static const AbbrevPair kBuiltinTypeList[]
static bool AtLeastNumCharsRemaining(const char *str, int n)
static bool ParseCharClass(State *state, const char *char_class)
static bool ParseFunctionType(State *state)
static bool ParseIdentifier(State *state, int length)
static bool ParseOperatorName(State *state)
static bool ParseCVQualifiers(State *state)
static void Append(State *state, const char *const str, const int length)
static bool OneOrMore(ParseFunc parse_func, State *state)
static bool ParseAbiTags(State *state)
static bool ParseTemplateParam(State *state)
static bool ParseCallOffset(State *state)
static bool IsFunctionCloneSuffix(const char *str)
bool Demangle(const char *mangled, char *out, size_t out_size)
static bool ParseNumber(State *state, int *number_out)
static bool ParseBareFunctionType(State *state)
static bool IdentifierIsAnonymousNamespace(State *state, int length)
static void MaybeCancelLastSeparator(State *state)
bool(* ParseFunc)(State *)
static bool IsAlpha(char c)
static const char prefix[]
static bool ParseFloatNumber(State *state)
static bool ParseTwoCharToken(State *state, const char *two_char_token)
static bool ParseDiscriminator(State *state)
static void InitState(State *state, const char *mangled, char *out, size_t out_size)
static bool ParseVOffset(State *state)
static bool ParseTemplateArg(State *state)
static bool ParseType(State *state)
static bool ParseUnqualifiedName(State *state)
typedef void(APIENTRY *GLDEBUGPROCARB)(GLenum source
static bool IsLower(char c)
static bool ParseTemplateArgs(State *state)
static bool ParseSourceName(State *state)
static bool LeaveNestedName(State *state, short prev_value)
static bool ParseAbiTag(State *state)
static bool ParseExprPrimary(State *state)
static bool IsDigit(char c)
static bool ParseBuiltinType(State *state)
static bool ParseEncoding(State *state)
static bool ParseSeqId(State *state)
static bool MaybeAppend(State *state, const char *const str)
static void MaybeAppendWithLength(State *state, const char *const str, const int length)
static bool ParseNVOffset(State *state)
static bool DisableAppend(State *state)
static size_t StrLen(const char *str)
static bool ParseUnscopedName(State *state)
static bool EnterNestedName(State *state)
static const AbbrevPair kSubstitutionList[]
static bool ParseUnscopedTemplateName(State *state)
static const AbbrevPair kOperatorList[]
static bool ParseMangledName(State *state)
static bool ParseLocalName(State *state)
static bool ZeroOrMore(ParseFunc parse_func, State *state)
static bool ParseTopLevelMangledName(State *state)
static void MaybeAppendSeparator(State *state)
static bool StrPrefix(const char *str, const char *prefix)
static bool ParseName(State *state)
static bool ParsePointerToMemberType(State *state)
static bool ParseArrayType(State *state)
static bool ParseNestedName(State *state)
static bool ParseSpecialName(State *state)
static bool Optional(bool)
static bool ParseClassEnumType(State *state)
static bool ParseOneCharToken(State *state, const char one_char_token)
libaditof
Author(s):
autogenerated on Wed May 21 2025 02:06:49