core.demangle
The demangle module converts mangled D symbols to a representation similar to what would have existed in code.
- License:
- Distributed under the Boost Software License 1.0. (See accompanying file LICENSE)
- Authors:
- Sean Kelly
- Source
- core/demangle.d
- pure nothrow @safe char[] demangle(const(char)[] buf, char[] dst = null);
-
Demangles D mangled names. If it is not a D mangled name, it returns its argument name.
- Parameters:
const(char)[] buf
The string to demangle. char[] dst
An optional destination buffer.
- Returns:
- The demangled name or the original string if the name is not a mangled D name.
- pure nothrow @safe char[] demangleType(const(char)[] buf, char[] dst = null);
-
Demangles a D mangled type.
- Parameters:
const(char)[] buf
The string to demangle. char[] dst
An optional destination buffer.
- Returns:
- The demangled type name or the original string if the name is not a mangled D type.
- pure nothrow @safe char[] reencodeMangled(const(char)[] mangled);
-
reencode a mangled symbol name that might include duplicate occurrences of the same identifier by replacing all but the first occurence with a back reference.
- Parameters:
const(char)[] mangled
The mangled string representing the type
- Returns:
- The mangled name with deduplicated identifiers
- pure nothrow @safe char[] mangle(T)(const(char)[] fqn, char[] dst = null);
-
Mangles a D symbol.
- Parameters:
T The type of the symbol. const(char)[] fqn
The fully qualified name of the symbol. char[] dst
An optional destination buffer.
- Returns:
- The mangled name for a symbols of type T and the given fully qualified name.
- Examples:
-
assert(mangle!int("a.b") == "_D1a1bi"); assert(mangle!(char[])("test.foo") == "_D4test3fooAa"); assert(mangle!(int function(int))("a.b") == "_D1a1bPFiZi");
- pure nothrow @safe char[] mangleFunc(T : FT*, FT)(const(char)[] fqn, char[] dst = null)
Constraints: if (is(FT == function)); -
Mangles a D function.
- Parameters:
T function pointer type. const(char)[] fqn
The fully qualified name of the symbol. char[] dst
An optional destination buffer.
- Returns:
- The mangled name for a function with function pointer type T and the given fully qualified name.
- enum string cPrefix;
-
C name mangling is done by adding a prefix on some platforms.
© 1999–2021 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/core_demangle.html