完成以下正则文法所描述的Pascal语言子集单词符号的词法分析程序: →字母︱ 字母︱ 数字 →数字︱ 数字 →+ ︱- ︱* ︱; ︱(︱) →=︱=︱>︱=︱* →< →= →> →: →/ 该语言的保留字 :begin end if then else for do while and or not 说明:(1)该语言大小写不敏感;(2)字母为a-z A-Z,数字为0-9;(3)可以对上述文法进行扩充和改造;(4) ‘/*……*/’为程序的注释部分。 要求:(1)
包括有全部的实验报告、一个完整的程序代码、4个运算符表 实验报告的部分如下所示: 三、实验步骤: 1、测试评价 (1)、测试1:能说明一些简单的变量,如关键字、一般标识符、界符等; (2)、测试2:能输出结果:单词符号(内码形式)、各种信息表(如符号表、常量表等); (3)、测试程序: var x,y,z; begin x:=2; y:=3; if (x+5>=y*y) then begin z:=y*y-x; z:=z+x*x; end else z:=x+y; prn z; end.
int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z') 返回非0值,否则返回0 int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或数字('0'-'9') 返回非0值,否则返回0 int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0 int iscntrl(int ch) 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F) 返回非0值,否则返回0 int is