如何在Python中解析C源?

我们要解析我们巨大的C源代码树,以获得足够的信息来提供另一个工具,以创建类和对象关系的图表,识别事物的整体组织等.

我最好的尝试是一个Python脚本,扫描所有.cpp和.h文件,运行正则表达式搜索来尝试检测类声明,方法等.我们不需要一个完整的分析器来捕获每个细节,或一些重UML图生成器 – 有很多细节我们想忽略,我们正在发明新的图表类型.脚本排序是有效的,但是真的是真的:C很难解析!

所以我想知道什么工具存在从我们的来源提取我们想要的信息?我不是一个语言专家,不想要陡峭的学习曲线.我们低调的蓝领程序员咕噜声可以使用:P

Python是首选的标准语言之一,但并不重要.

我会简单地推荐Clang.

它是一个基于C库的编译器,易于重用.它特别意味着您可以将其仅用于解析和生成抽象语法树.它负责处理所有繁琐的操作符重载分辨率,模板实例化等.

Clang导出基于C的界面,它通过Python Bindings进行扩展.界面通常很丰富,但我没有使用它.无论如何,如果你想帮助扩展它,欢迎贡献.

翻译自:https://stackoverflow.com/questions/4881377/how-to-parse-c-source-in-python

转载注明原文:如何在Python中解析C源?