下面是这个分析器的功能:
(3) 其他单词是标识符(ID)和整型常数(NUM)通过以下正规式定义:
(4) 空格由空白、制表符和换行符组成。空格一般用来分隔ID、NUM,运算符、界苻和关键字词法分析阶段通常被忽略。
2、 各种单词符号对应的种别码
输入:所给文法的源程序字符串
输出:二元组(syn,token或sum)构成的序列
其中:syn为单词种别码;
token为存放的单词自身字符串;
//token数组用来接收关键字,变量运算符和界符 //这里限制变量名的长度最多为9 //prog数组存储嘚是源代码字符串长度 //syn是各个单词符号对应的数字 //rwtab数组存储的是关键字 //规定,标识符只能由字母或数字构成 共分为三大块分别是标示符、数字、符号,对应下面的 if else if 和 else //token为已捕获的字符数 //这样处理可以去除空格 //在这个if判断中,范围是a-z或者A-Z因为规定变量只能以字母开头 //这里,是变量的第一个字符以后可以是字母,数字 //变量的字符串结束标志 //将识别出来的字符和已定义的标示符作比较 判断是否是关键字,所有关键字都是小写 //这里*10是只考虑十进制数 //可接收的数字的最大值为32767如果更大,会报错 //否则就只是一个<符号 //如果接收到的是.,说明到叻源代码的结尾置syn=0,函数结束 //如果接收到的是换行符则syn=-2,行+1 //如果接收到的是其他未定义的字符置syn=-1,会报错 读取源代码文件(.txt)