#include #include int I=0,J=0; int Alphabet(char a); int DFA(char m[]); int F(char bb[]); int B(char bb[]); void main() //void main() is here! { FILE *fp,*fs; char m[40]; //char str[100][40]; int i; if(fopen("bb.txt","r")==NULL) //写入单词符号 { fs=fopen(
完成以下正则文法所描述的Pascal语言子集单词符号的词法分析程序: →字母︱ 字母︱ 数字 →数字︱ 数字 →+ ︱- ︱* ︱; ︱(︱) →=︱=︱>︱=︱* →< →= →> →: →/ 该语言的保留字 :begin end if then else for do while and or not 说明:(1)该语言大小写不敏感;(2)字母为a-z A-Z,数字为0-9;(3)可以对上述文法进行扩充和改造;(4) ‘/*……*/’为程序的注释部分。 要求:(1)
a) 启动程序后,先输出作者姓名、班级、学号(可用汉语、英语或拼音); b) 请求输入测试程序名,键入程序名后自动开始词法分析并输出结果; c) 输出结果为单词的二元式序列(样式见样板输出1和2); d) 要求能发现下列词法错误和指出错误性质和位置: 非法字符,即不是SAMPLE字符集的符号; 字符常数缺右边的单引号(字符常数要求左、右边用单引号界定,不能跨行); 注释部分缺右边的界符*/(注释要求左右边分别用/*和*/界定,不能跨行)。