在Python中解析.c/.cpp/.py源文件以获取函数列表
我正在学习解析器,主要是针对Python、C和C++的源代码(这是我自己在学,不是学校的项目)。下面是我想做的事情的总结:
- 用Python读取.c、.cpp和.py的源文件
- 获取源文件中所有函数的列表,以及它们定义的行号范围。
为了更好地说明我的问题,假设有一个名为“helloWorld.cpp”的文件,里面有以下代码(我想用Python读取这个文件):
//start
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char** argv)
{
string str = "Hello World";
cout << str << endl;
return 0;
}
//end
我想得到的结果大概是这样的:
函数列表:
- int main(int argc, char** argv)
- 开始:第7行
- 结束:第12行
有没有什么好的方法可以实现这个呢?如果能给一些代码示例就太好了!
4 个回答
0
你可以用Python来实现和Clang的连接,或者你也可以直接用Python来解析和分析Clang生成的XML格式的抽象语法树(AST)数据。
1
Pygments可能是个不错的起点。它是用Python写的一个通用代码高亮工具,支持很多编程语言,还有更多你想要解析的内容。你可以在这里找到它:http://dev.pocoo.org/projects/pygments/wiki