C 语言词法分析器
一、概论
本程序是在 Linux 操作系统下,使用 shell 脚本编写的 C 语言词法
分析器,能够读出 C 语言文件中的界符、关键词、变量、常量和不可
识别字符,输出格式可以显示所读出字符或字符段的位置以及相关信
息。
二、运行原理
大体上,程序是一行一行,一个字节一个字节地读取文件内容,
通过读取界符位置,截取字符段,然后判断是否为关键字,输出所在
行及其简要信息。
具体运行是这样的:
1、 先获取文件,文件不存在报错,存在则先打印内容。
2、 对文件空白行进行删除,并且将所有 tab 键打出的空格替
换成普通空格,然后重定向一个临时文件。
3、 while [ $l -le $row ]
for (( b=1; b <= $bytenum; b++ ))
按照上面所说的原理进行读取文件,此处利用两个循环,
分别循环检测文件的行和行中的字节(简称行循环和字节
#include <stdio.h>
用 point 记录界符位置,初始值为零,从顶格写的#开始,利用 for 循
环,for (( b=1; b <= $bytenum; b++ )),当读到字母 e 后面的空格时,调
用函数截取 point+1 到 b-1 这一段代码,送往关键字读取函数去判断,
然后,把 b 值赋给 point,b 继续往后移动读取