词法分析器设计报告

词法分析器设计报告

ID:32495663

大小:335.50 KB

页数:8页

时间:2019-02-08

词法分析器设计报告_第1页
词法分析器设计报告_第2页
词法分析器设计报告_第3页
词法分析器设计报告_第4页
词法分析器设计报告_第5页
资源描述:

《词法分析器设计报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、《词法分析器》设计报告班级:计科1班任课老师:丁志军成员:陈炼(1352364)、赵婧杰(1352360)、刘玉晓(1352324)8目录1题目32软件功能33设计思路34物理结构35开发平台56系统的运行结果分析说明57参考文献781题目了解PL/0词法、语法规则,对PL/0示例程序实现词法分析,并输出分析结果。2软件功能1、读入以.txt为后缀的源程序文件,且该文件为pl/0语法规则;2、对读入的源程序进行词法分析,识别出“关键字、标识符、常数、运算符/界符”四种类型:a.关键字:"PROGRA

2、M","BEGIN","END","CONST","VAR","WHILE","DO","IF","THEN"b.标识符:由字母开头,字母、数字、或下划线组成的名字;c.常数:由0-9纯数字组成的字;d.运算符/界符:"+","-","*","/",":=","=","<",">",">=","<=","(",")",";",","3、输出各单词符号及其所属种别。3设计思路1、读取.txt文件,把源程序按行存储到buf数组,且每行不超过100个字符;2、写词法分析函数,划为多个判断分支:a.首先判断

3、是否为“常数”:倘若第一个字符为数字,则读完整个单词,若都为常数,则输出该单词;b.然后判断是否为“算符/界符”:倘若第一个字符等于上述列出的符号,则进入该分支,进行下一步的判断,并输出;c.最后判断是否为“关键字”或“标识符”:先判断第一个字符是否为大写字母,若不是,则进一步判断是否为标识符;是的话则判断,该单词是否等于上述9个关键字中的某一个,若是,则输出为关键字,否则为标识符;3、主函数main()则负责输出程序操作提示,如输入源文件名字,读入文件、调用子程序等功能。4物理结构1、头文件:(1

4、)#include;(2)#include;(3)#include.2、全局变量(1)buf[LINE]:LINE=100,为源程序每行至多存放的字符数,buf数组按行存放字符;(2)length:记录每行长度;8(3)key[9]:存放了9个关键字;(4)ch[15]:存放了所有的算符/界符.3、函数:(1)readfile(FILE*fp):读取.txt文件,只读取一行(2)lexical(char*buf,intlength)(词法分析

5、函数):a.判断是否为“常数”:if(buffer[i]=='0'

6、

7、buffer[i]=='1'

8、

9、buffer[i]=='2'

10、

11、buffer[i]=='3'

12、

13、buffer[i]=='4'

14、

15、buffer[i]=='5'

16、

17、buffer[i]=='6'

18、

19、buffer[i]=='7'

20、

21、buffer[i]=='8'

22、

23、buffer[i]=='9'){cout<<"常数"<

24、

25、buffer[i]=='1'

26、

27、buf

28、fer[i]=='2'

29、

30、buffer[i]=='3'

31、

32、buffer[i]=='4'

33、

34、buffer[i]=='5'

35、

36、buffer[i]=='6'

37、

38、buffer[i]=='7'

39、

40、buffer[i]=='8'

41、

42、buffer[i]=='9')cout<

43、

44、buffer[i]=='-'

45、

46、buffer[i]=='*'

47、

48、buffer[i]=='/'

49、

50、buf

51、fer[i]=='='

52、

53、buffer[i]=='('

54、

55、buffer[i]==')'

56、

57、buffer[i]==';'

58、

59、buffer[i]==',')cout<<"算符/界符"<<""<'

60、

61、buffer[i]=='<'){if(buffer[i+1]=='=')cout<<"算符/界符"<<""<

62、<='A'&&buffer[i]<='Z'){chara1[]="PROGRAM";chara2[]="BEGIN";chara3[]="END";chara4[]="CONST";chara5[]="VAR"

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。