现的所在列数i
tli
e:语法错误出现的所在行数i
terr:语法错误的个数i
tbegi
:当前程序扫描在字符串中的开始位置i
te
d:当前程序扫描在字符串中的结束位置
f47局部变量定义
i
ti:选择第i个字符进行检测i
tstate:单词类型判断标志i
tN:文件长度charc:当前遍历的字符stri
gstr:输入字符串i
tflag:退出标志
五、主要模块算法介绍
51总体流程介绍
开始否文件是否载入是初始化state0逐个遍历输入字符进入switch分支循环判断根据state的值选择适当的处理调用相关函数输出处理结果结束
图51程序总体流程图
说明:state为输入字符状态标志,根据输入字符不同类型选择不同处理。
52主要分支选择算法介绍521case0情况算法
f开始state为0进入case0是是否为界符否
前一个字符和单词最开始的字符是否为数字否对应为那种界符编码输出结果state置0
否是编号截取该数值是否为字母
是否为单目运算符是state对应更改
输出结果
进入对应选择分支
是否为数字
是state10是
否
state11
词法出错输出错误原因以及行列
记该处为字符开始处
标记该位置为数字开始处
结束
图52case0情况流程图
522522case1情况算法
fifcstate0error_textappe
d