万事开头难,这句话的意思就是开头的工作千万不要搞得太难,不然接下去就很难做了。呵呵,我是这么理解的。所以现在这个工程就从最基本的开始--单个C文件中函数的调用分析。
首先要对文本进行预处理,这包括:
1,删除空行,这些空行会对后面的处理带来很多麻烦。趁早删掉可以为后面的处理提供很大的便利。
完成上面操作后,我将整个C文件想象成下面的格式:
#............................
#............................
............
function name
{
}
.............
function name{
}
....................
这样第一步就是把整个文件中顶级的配对大括号及里面的内容揪出来。
先说说我最开始的思路吧,伪代码奉上:
while(读取文件的一行)
{
if(是左大括号)
{
if(是顶级大括号对的左大括号)
{
函数列表中加入该函数。
}
}
elseif(是右大括号)
{
将收集到的函数内容放到函数内容列表中。
}
else
{
收集函数内容。
}
}
上面只是粗略的描述了基本的函数内容,文件通过上面的处理,函数列表和函数内容列表就出来了,接下来就要对函数内容进行分析,找出其中调用的函数。
主要用到的Python的知识点:
1,文件操作
这些操作在网上有好多专门整理的,我也是直接拿来用了。
2,文本操作
主要是find,strip等方法的应用,更多是通过逻辑来实现对文本的操作。
3,正则表达式
通过import re这个库来进行操作,确实很强大,我现在还知识学到皮毛。
源码明天再传吧。