所有.h文件均对应相应的.c文件,.h文件外部定义,.c文件具体实现。
clang.l: lex文件本身对C语言中标识符词法分析;
add_run.h: 通过add_run()函数将对匹配代码段识别出的标记符及相同标记符的数量存放到数组Token_Array[]中;
algollike.h文件:定义Non_Finals、Non_Initials、Openers、Closers四个标记集;被language.h所调用;
compare.h文件:将每一个新的文本与相应的文本作判别,将运行结果以及输入文件对应位置存储在AISO堆中,其中对比采用LCS(最长公共子序列)判断;
debug.h文件:调试输出;
error.h文件:错误信息;
fname.h文件:文件格式转换;
ForEachFile.h文件:将每个文件中的空格、换行符、制表符、注释消去;
hash.h文件:创建和访问forward_reference[],使用Hash索引的方法来加快最长子串算法效率;
idf.h文件:关键字(标识符和数字)链表定义;
lang.h文件:提供对最低级别的访问标记例程和数据,它的实现源于* lang.l文件之一。
language.h文件:抽象类的语言定义例程,它描述一些语言的性质;
lex.h文件:计数各类标记符,服务于宏为*lang.l文件;
Malloc.h文件:该文件的malloc[ch]提供几种功能:
- 检查“内存不足”:简化编程
- 使用分配新(型)“,”“记忆”
- 检测内存泄漏:获得清洁程序
- 新鲜重挫分配的内存:获得更安全的方案;
newargs.h文件:回收空间;
options.h文件:设置和咨询命令行选项;
pass1.h文件:读取输入文件,将标记符存储在Token_Array []中,将输入描述文件存储在结构体text[]中;
pass2.h文件:对于每一次运行确定开始和结束;
pass3.h文件:打印运行内容;
percentage.h文件:计算百分比,两次读取输入文件。这使得它不可能使用结构体text-s提出作为标识运行的文件,因为他们的第一个和第二个扫描之间是不同的。从结构text-s确定具体条目存储;
runs.h文件:读取文件;
sim.h文件:调用对比判别两个文件,并显示相似度;
stream.h文件:实现了直接与词汇的交互模块;
text.h文件:实现了对词法扫描器的访问。此外,模块试图保存换行符信息,只有第二次扫描对这一信息感兴趣;
token.h文件:标记符接口,定义并转换标记符;
tokenarrary.h文件:标记符存储接口。
所有.h文件均对应相应的.c文件,.h文件外部定义,.c文件具体实现。