用于解析和检查c ++的Python代码

时间:2010-03-06 18:07:51

标签: c++ python

是否有Python库可以解析c ++代码?

例如,假设我想解析一些c ++代码并找到所有类及其成员函数/变量的名称。

我可以想到一些方法可以使用正则表达式将它们组合在一起,但是如果有一个现有的库它会更有帮助。

5 个答案:

答案 0 :(得分:7)

过去我曾用于gccxml(一种发布易于解析的XML的C ++解析器) - 我将自己的Python接口复制到它,但现在有一个pygccxml应该很好地为你打包。

答案 1 :(得分:4)

准确地解析C ++与使用正则表达式可以做的事情有关。 你需要一个完整的C ++解析器,而且它们很难构建。几年来我一直参与建设一个,并跟踪谁在做这件事;我不知道在 Python中有没有尝试

我工作的是DMS C++ Front End。 它不仅提供解析,还提供全名和类型解析。在解析之后,您基本上可以在任何您喜欢的详细程度上提取有关代码的详细信息,包括有关函数内容的仲裁细节。

您可以考虑使用包含解析器的GCCXML,并且我相信会生成所有类,函数和顶级变量的名称。 GCCXML不会向您提供有关内部功能的信息。

答案 2 :(得分:1)

这可能超出了你问题的范围......但是根据你想要实现的目标,或许Exuberant Ctags值得一看。

答案 3 :(得分:1)

没试过,但使用LLVM的Clang解析器的Python绑定可能会起作用;见here

答案 4 :(得分:0)

pyparsing怎么样?