用于解扰itanium符号的纯Python解析器
项目描述
Itanium Demangler
《Python Itanium Demangler》是用于Itanium C++ ABI符号混淆语言的纯Python解析器。请注意,MSVC混淆语言不受支持。
此解扰器从混淆符号生成抽象语法树,可以直接提取类型信息,而不是必须解释与解扰符号对应的C++源代码。
还有一个内置的AST字符串化程序,因此解扰器可以用作c++filt
的替代品或用于格式化回溯。
要求
解扰器在Python 2.7和3.3+上运行,并且没有依赖项。
安装
通过PyPI安装
pip install itanium_demangler
使用本地存储库进行开发
git clone https://github.com/whitequark/python-itanium_demangler
cd python-itanium_demangler
python setup.py develop --user
用法
from itanium_demangler import parse as demangle
ast = demangle("_ZN5boost6chrono24process_system_cpu_clock3nowEv")
print(repr(ast))
# <FuncNode func <Node qual_name (<Node name 'boost'>, <Node name 'chrono'>, <Node name 'process_system_cpu_clock'>, <Node name 'now'>)> (<Node builtin 'void'>,) None>
print(ast)
# boost::chrono::process_system_cpu_clock::now()
未来考虑事项
MSVC混淆语言的类似(即也解析到AST)的解扰器实现将很有用。