解析和检查C++的Python代码

8 投票
5 回答
2310 浏览
提问于 2025-04-15 20:05

有没有一个可以用来解析C++代码的Python库?

比如说,我想解析一些C++代码,找出所有类的名字以及它们的成员函数和变量。

我能想到用正则表达式来拼凑一些方法,但如果有现成的库,那就更方便了。

5 个回答

1

这可能有点超出你问题的范围……不过,根据你想要实现的目标,或许可以看看Exuberant Ctags这个工具。

5

准确解析C++代码可不是用普通的正则表达式就能做到的,这个差距大得很。你需要一个完整的C++解析器,而这类解析器的构建相当困难。我参与过几年的相关工作,也在关注谁在做这方面的事情;不过我不知道有没有人在Python里尝试过。

我参与的项目是DMS C++ 前端。这个工具不仅能解析代码,还能进行完整的名称和类型解析。解析完成后,你可以提取关于代码的详细信息,想要多详细都有,包括函数内容的各种细节。

你也可以考虑使用GCCXML,这个工具里有一个解析器,能生成所有类、函数和顶层变量的名称。我记得GCCXML不会提供关于函数内部的任何信息。

9

以前我为了这个目的使用过 gccxml,这是一种可以解析C++代码并输出容易处理的XML格式的工具。我自己动手写了Python接口来使用它,但现在有了一个叫 pygccxml 的库,可以帮你更方便地使用这个工具。

撰写回答