D Programming Language
Report a bug If you spot a problem with this page, click here to create a Bugzilla issue. Improve this page Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone.

# 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

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.
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[] 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) 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.
  Examples:

      assert(mangleFunc!(int function(int))("a.b") == "_D1a1bFiZi");
      assert(mangleFunc!(int function(Object))("object.Object.opEquals") == "_D6object6Object8opEqualsFC6ObjectZi");

enum string cPrefix;
  C name mangling is done by adding a prefix on some platforms.

Copyright Sean Kelly 2010 - 2014. | Page generated by Ddoc on Wed Jan 27 15:24:50 2016