Swift 的 Demangler.cpp 的翻译(在许多情况下是逐行翻译)到 Swift 代码。
我通常将我的代码置于 ISC 风格的许可证下,但由于此项目源自 Swift 项目,因此它受该项目的 Apache 许可证 2.0 版(包含运行时库例外) 的约束。
使用 parseMangledSwiftSymbol
函数解析包含混淆的 Swift 符号的 String
。
let swiftSymbol = try parseMangledSwiftSymbol(input)
使用 description
将符号打印到字符串(以获取 .default
打印选项),或使用 print(using:)
函数,例如:
let result = swiftSymbol.print(using:
SymbolPrintOptions.default.union(.synthesizeSugarOnTypes))
在 Cocoa with Love 上的相关文章中阅读更多关于此项目的信息:比较 Swift 和 C++ 的解析性能