是否有Python库可以解析c ++代码?
例如,假设我想解析一些c ++代码并找到所有类及其成员函数/变量的名称。
我可以想到一些方法可以使用正则表达式将它们组合在一起,但是如果有一个现有的库它会更有帮助。
答案 0 :(得分:7)
答案 1 :(得分:4)
准确地解析C ++与使用正则表达式可以做的事情有关。 你需要一个完整的C ++解析器,而且它们很难构建。几年来我一直参与建设一个,并跟踪谁在做这件事;我不知道在 Python中有没有尝试。
我工作的是DMS C++ Front End。 它不仅提供解析,还提供全名和类型解析。在解析之后,您基本上可以在任何您喜欢的详细程度上提取有关代码的详细信息,包括有关函数内容的仲裁细节。
您可以考虑使用包含解析器的GCCXML,并且我相信会生成所有类,函数和顶级变量的名称。 GCCXML不会向您提供有关内部功能的信息。
答案 2 :(得分:1)
这可能超出了你问题的范围......但是根据你想要实现的目标,或许Exuberant Ctags值得一看。
答案 3 :(得分:1)
没试过,但使用LLVM的Clang解析器的Python绑定可能会起作用;见here。
答案 4 :(得分:0)
pyparsing怎么样?