nxt.mangling

ELF Symbol Name (De)Mangling.

Members

Aliases

Expr
alias Expr = string

Demangled Expression.

LanguageT
alias LanguageT = ubyte
Undocumented in source.

Classes

Demangler
class Demangler(R)

C++ Demangler.

Enums

CtorDtorName
enum CtorDtorName

TODO: Use this

CxxRefQualifier
enum CxxRefQualifier
Undocumented in source.
Language
enum Language

Mangled language.

Functions

decodeCxxArrayType
R decodeCxxArrayType(Demangler!R x)
decodeCxxBareFunctionType
CxxBareFunctionType!R decodeCxxBareFunctionType(Demangler!R x)
decodeCxxBuiltinType
R decodeCxxBuiltinType(Demangler!R x)

Try to Decode C++ Builtin Type at r.

decodeCxxCVQualifiers
CXXCVQualifiers decodeCxxCVQualifiers(R r)

Decode <CV-qualifiers>

decodeCxxCallOffset
R decodeCxxCallOffset(Demangler!R x)
decodeCxxClassEnumType
R decodeCxxClassEnumType(Demangler!R x)
decodeCxxCtorDtorName
R decodeCxxCtorDtorName(Demangler!R x)
decodeCxxDecltype
R decodeCxxDecltype(Demangler!R x)
decodeCxxDescriminator
R decodeCxxDescriminator(Demangler!R x)
decodeCxxDigit
R decodeCxxDigit(Demangler!R x)
Undocumented in source. Be warned that the author may not have intended to support it.
decodeCxxEncoding
R decodeCxxEncoding(Demangler!R x)
Undocumented in source. Be warned that the author may not have intended to support it.
decodeCxxExprPrimary
R decodeCxxExprPrimary(Demangler!R x)
decodeCxxExpression
R decodeCxxExpression(Demangler!R x)
Undocumented in source. Be warned that the author may not have intended to support it.
decodeCxxFunctionType
R decodeCxxFunctionType(Demangler!R x)

Try to Decode C++ Function Type at r.

decodeCxxLocalName
R decodeCxxLocalName(Demangler!R x)
decodeCxxMangledName
R decodeCxxMangledName(Demangler!R x)
decodeCxxNVOffset
R decodeCxxNVOffset(Demangler!R x)
Undocumented in source. Be warned that the author may not have intended to support it.
decodeCxxName
R decodeCxxName(Demangler!R x)
decodeCxxNestedName
R decodeCxxNestedName(Demangler!R x)
decodeCxxNumber
R decodeCxxNumber(Demangler!R x)
decodeCxxOperatorName
R decodeCxxOperatorName(Demangler!R x)

Try to Decode C++ Operator at r.

decodeCxxPointerToMemberType
R decodeCxxPointerToMemberType(Demangler!R x)
decodeCxxPrefix
R decodeCxxPrefix(Demangler!R x)
decodeCxxRefQualifier
CxxRefQualifier decodeCxxRefQualifier(Demangler!R x)

Decode <ref-qualifier>

decodeCxxSourceName
R decodeCxxSourceName(Demangler!R x)

Decode Identifier <source-name>.

decodeCxxSpecialName
R decodeCxxSpecialName(Demangler!R x)
decodeCxxSubstitution
R decodeCxxSubstitution(Demangler!R x, R stdPrefix)

Decode C++ Substitution Type at r.

decodeCxxTemplateArg
R decodeCxxTemplateArg(Demangler!R x)
decodeCxxTemplateArgs
R[] decodeCxxTemplateArgs(Demangler!R x)
decodeCxxTemplateParam
R decodeCxxTemplateParam(Demangler!R x)
decodeCxxTemplatePrefix
R decodeCxxTemplatePrefix(Demangler!R x)
decodeCxxTemplatePrefixAndArgs
R decodeCxxTemplatePrefixAndArgs(Demangler!R x)
Undocumented in source. Be warned that the author may not have intended to support it.
decodeCxxTemplateTemplateParamAndArgs
R decodeCxxTemplateTemplateParamAndArgs(Demangler!R x)
Undocumented in source. Be warned that the author may not have intended to support it.
decodeCxxType
R decodeCxxType(Demangler!R x)

Decode C++ Type at r.

decodeCxxUnnamedTypeName
R decodeCxxUnnamedTypeName(Demangler!R x)
decodeCxxUnqualifiedName
R decodeCxxUnqualifiedName(Demangler!R x)

https://mentorembedded.github.io/cxx-abi/abi.html#mangle.unqualified-name

decodeCxxUnqualifiedType
R decodeCxxUnqualifiedType(Demangler!R x)

Decode Unqualified C++ Type at r.

decodeCxxUnscopedName
R decodeCxxUnscopedName(Demangler!R x)
decodeCxxUnscopedTemplateName
R decodeCxxUnscopedTemplateName(Demangler!R x)
decodeCxxUnscopedTemplateNameAndArgs
R decodeCxxUnscopedTemplateNameAndArgs(Demangler!R x)
decodeCxxVOffset
R decodeCxxVOffset(Demangler!R x)
Undocumented in source. Be warned that the author may not have intended to support it.
decodeSymbol
Demangling decodeSymbol(Demangler!R x)

Demangle Symbol r and Detect Language.

demangler
auto demangler(T args)
Undocumented in source. Be warned that the author may not have intended to support it.
skipLiteral
string skipLiteral(Demangler!R x, E lit)

Like skipOver but return string instead of bool. Bool-conversion of returned value gives same result as r.skipOver(lit).

toCxxString
string toCxxString(CxxRefQualifier refQ)
Undocumented in source. Be warned that the author may not have intended to support it.

Structs

CXXCVQualifiers
struct CXXCVQualifiers
Undocumented in source.
CxxBareFunctionType
struct CxxBareFunctionType(R)
Undocumented in source.
CxxType
struct CxxType
Undocumented in source.
Demangling
struct Demangling
Undocumented in source.

See Also

https://mentorembedded.github.io/cxx-abi/abi.html

TODO: Only check for emptyness before any optionals.

TODO: Search for pattern "X> <Y" and assure that they all use return r.tryEvery(X, Y).

TODO: 1. Replace calls to decode ~ decode with separate decodes TODO: 2 : Replace calls to decode ~ decode with a sequence call.

TODO: Detect recursion: See: http://forum.dlang.org/thread/edaduxaxmihvzkoudeqa@forum.dlang.org#post-edaduxaxmihvzkoudeqa:40forum.dlang.org See: http://code.dlang.org/packages/backtrace-d

TODO: What role does _ZL have? See localFlag for details.

Meta