std.demangle
Dのマングル化された名前をデマングルします- string demangle(string name);
- Dのマングル化された名前をデマングルします
Dのマングル名でない場合は、引数 name をそのまま返します
Example:
このプログラムは標準入力を読み込み、見つかったDのマングル名を全て 元に戻しながら標準出力へ書き出します。import std.stdio; import std.ctype; import std.demangle; int main() { char[] buffer; bool inword; int c; while ((c = fgetc(stdin)) != EOF) { if (inword) { if (c == '_' || isalnum(c)) buffer ~= cast(char) c; else { inword = false; writef(demangle(buffer), cast(char) c); } } else { if (c == '_' || isalpha(c)) { inword = true; buffer.length = 0; buffer ~= cast(char) c; } else writef(cast(char) c); } } if (inword) writef(demangle(buffer)); return 0; }