Demangler

Flexible demangler. Attempts to demangle D symbols generated by the DMD frontend. (Which is not always technically possible.)

Constructors

this
this()

Creates a demangler.

this
this(uint verbosityLevel)

Creates a demangler with the given verbosity level.

Members

Functions

demangle
inout(char)[] demangle(inout(char)[] input)

Demangles the given string.

demangle
inout(char)[] demangle(inout(char)[] input, char[] output)

Demangles the given string using output to hold the result.

verbosity
void verbosity(uint level)

Sets the verbosity level of the demangler (template expansion level,...)

Structs

DemangleInstance
struct DemangleInstance

This represents a single demangling request, and is the place where the real work is done some more cleanup would probably be in order (maybe remove Buffer.)

Variables

expandFunctionTypes
bool expandFunctionTypes;

Print types of functions being part of the main symbol.

foldDefaults
bool foldDefaults;

Skip default members of templates (sole members named after * the template.)

printTypeKind
bool printTypeKind;

For composite types, print the kind (class|struct|etc.) of the type.

templateExpansionDepth
uint templateExpansionDepth;

How deeply to recurse printing template parameters, * for depths greater than this, an ellipsis is used.

Meta