给定一个代码库(例如大型 C 或 Objective-C 项目),我想分析源代码文件并挑选出感兴趣的符号。它们可能是类声明、变量名称或类型或方法名称。是否有 Python 模块可以帮助我解决这个问题?
我能看到的唯一方法是使用正则表达式来收集这些符号,但我认为这很快就会变得非常丑陋。我也不是编译器或解析器方面的专家,因此最好使用更轻量级的东西。
感谢您的任何建议。
------更新-----
感谢到目前为止的所有建议,绝对是一些有前途的线索。另一种可能的途径:如果我能够编译我试图分析的项目会怎样。调试符号 (dsym) 会使这个过程更容易吗?我不是在寻找任何高级的东西,只是一个类列表,以及它们的 ivar 和方法名称。在这一点上,研究建议的解析工具似乎比我现在可以负担得起的投资更多的工作
最佳答案
Regex 绝对不是检查编程语言代码的好方法。我建议从下面提供的链接中选择一个解析模块。 您可以使用一些工具。它们都提供解析工具。您始终可以在此基础上构建您的东西:
- http://code.google.com/p/pycparser/
- 许多工具位于:http://wiki.python.org/moin/LanguageParsing
- http://www.boost.org/doc/libs/1_44_0/libs/python/pyste/doc/introduction.html
pygccxml 从 C++ 程序文件生成 xml 描述。这可能更接近您正在尝试做的事情:
再看看这个,它生成代表类结构的可导航类树。
关于python - 使用 Python 从代码库中挑选符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3919922/