| @safe pure unittest | |
| { | |
| import std.demangle; | |
| // int b in module a | |
| assert(demangle("_D1a1bi") == "int a.b"); | |
| // char array foo in module test | |
| assert(demangle("_D4test3fooAa") == "char[] test.foo"); | |
| } | |
| @system unittest | |
| { | |
| import std.demangle; | |
| import std.ascii : isAlphaNum; | |
| import std.algorithm.iteration : chunkBy, joiner, map; | |
| import std.algorithm.mutation : copy; | |
| import std.conv : to; | |
| import std.demangle : demangle; | |
| import std.functional : pipe; | |
| import std.stdio : stdin, stdout; | |
| void main() | |
| { | |
| stdin.byLineCopy | |
| .map!( | |
| l => l.chunkBy!(a => isAlphaNum(a) || a == '_') | |
| .map!(a => a[1].pipe!(to!string, demangle)).joiner | |
| ) | |
| .copy(stdout.lockingTextWriter); | |
| } | |
| } | |