编译原理词法分析程序设计实验报告

编译原理词法分析程序设计实验报告

ID:22070531

大小:292.50 KB

页数:13页

时间:2018-10-27

编译原理词法分析程序设计实验报告_第1页
编译原理词法分析程序设计实验报告_第2页
编译原理词法分析程序设计实验报告_第3页
编译原理词法分析程序设计实验报告_第4页
编译原理词法分析程序设计实验报告_第5页
资源描述:

《编译原理词法分析程序设计实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、.WORD文档下载可编辑.编译原理词法分析程序设计实验报告【实验目的】1.了解词法分析的主要任务。2.熟悉编译程序的编制。【实验内容】根据某文法,构造一基本词法分析程序。找出该语言的关键字、标识符、整数以及其他一些特殊符号,给出单词的种类和值。【实验要求】1.构造一个小语言的文法类C小语言文法(以EBNF表示)<程序>::=<分程序>{<分程序>}.<分程序>::=<标识符>’(’<变量说明部分>{,<变量说明部分>}’)’<函数体><变量说明部分>::=int<标识符>{,<标识符>}<函数体>::=’{’[<变量说明部分>;]<语句序列>’}’<语句序列>::=<

2、语句序列>;<语句>

3、<语句><语句>::=<赋值语句>

4、<条件语句>

5、<循环语句>

6、<函数调用语句><赋值语句>::=<标识符>=<表达式><表达式>::=[+

7、-]<项>{<加法运算符><项>}<项>::=<因子>{<乘法运算符><因子>}<因子>:=<标识符>

8、<无符号整数><加法运算符>::=+

9、-<乘法运算符>::=*

10、/<条件语句>::=if<条件>’{’<语句序列>’}’[else’{’<语句序列>’}’]<条件>::=<表达式><关系运算符><表达式><关系运算符>::===

11、!=

12、>

13、<

14、>=

15、<=<循环语句>::=for’(’<表达式>;<条件>;

16、<表达式>’)’’{’<语句序列>’}’专业资料整理分享.WORD文档下载可编辑.<函数调用语句>::=<标识符>’(’<标识符>{,<标识符>}

17、<空>’)’<标识符>::=<字母>{<字母>

18、<数字>}<无符号整数>::=<数字>{<数字>}<字母>::=a

19、b

20、c

21、…

22、X

23、Y

24、Z<数字>::=0

25、1

26、2

27、…

28、8

29、9单词分类情况关键字:intifelsefor标识符:以字母开头的字母和数字的组合关系运算符:==

30、!=

31、>

32、<

33、>=

34、<=加法运算符:+

35、-乘法运算符:*

36、/界符:,;{}()1.设计单词的输出形式,单词的种类和值的表示方法种别码单词值如:1int3.

37、编写词法分析程序cffx.c实现基本的词法分析器,能够分析关键字、标识符、数字、运算符(需要有“==”或“:=”之类需要超前搜索的运算符)以及其他一些符号。//编译原理词法分析程序.cpp#include#include#includetypedefstructwords{intid;charname[20];charvalue[20];}word;charinteger[20]={'i','n','t'};chariff[20]={'i','f'};charelsee[20]={'e','l','s','e'

38、};charforr[20]={'f','o','r'};intmain(){专业资料整理分享.WORD文档下载可编辑.charcode[10000];charwords[20],ch;inti,j,p,count,n,m;intk=0;wordsymbol[500];printf("种别码:1类别:关键字int");printf("种别码:2类别:关键字if");printf("种别码:3类别:关键字else");printf("种别码:4类别:关键字for");printf("种别码:5类别:标识符");printf("种别码:6类别:计算运算

39、符");printf("种别码:7类别:关系运算符");printf("种别码:8类别:界符");while(1){gets(code);n=strlen(code);for(m=0,j=0;m='a'&&code[m]<='z')

40、

41、(code[m]>='0'&&code[m]<='9')){words[j]=code[m];j++;}else{if(words[0]=='i'&&words[1]=='n'&&words[2]=='t'&&words[3]==''){symbol[k].id=1;for(i=0

42、;i<20;i++){symbol[k].value[i]=words[i];}k++;}elseif(words[0]=='i'&&words[1]=='f'&&words[2]==''){symbol[k].id=2;for(i=0;i<20;i++){symbol[k].value[i]=iff[i];}k++;专业资料整理分享.WORD文档下载可编辑.}elseif(words[0]=='e'&&words[1]=='l'&&words[2]=='s'&&words[3]=='e'&&words[4]==''){symbol[k].i

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

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

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