解析和检查C++的Python代码
有没有一个可以用来解析C++代码的Python库?
比如说,我想解析一些C++代码,找出所有类的名字以及它们的成员函数和变量。
我能想到用正则表达式来拼凑一些方法,但如果有现成的库,那就更方便了。
5 个回答
1
这可能有点超出你问题的范围……不过,根据你想要实现的目标,或许可以看看Exuberant Ctags这个工具。
5
准确解析C++代码可不是用普通的正则表达式就能做到的,这个差距大得很。你需要一个完整的C++解析器,而这类解析器的构建相当困难。我参与过几年的相关工作,也在关注谁在做这方面的事情;不过我不知道有没有人在Python里尝试过。
我参与的项目是DMS C++ 前端。这个工具不仅能解析代码,还能进行完整的名称和类型解析。解析完成后,你可以提取关于代码的详细信息,想要多详细都有,包括函数内容的各种细节。
你也可以考虑使用GCCXML,这个工具里有一个解析器,能生成所有类、函数和顶层变量的名称。我记得GCCXML不会提供关于函数内部的任何信息。