语法、词法分析结合

语法、词法分析结合

ID:42683909

大小:1.75 MB

页数:19页

时间:2019-09-20

语法、词法分析结合_第1页
语法、词法分析结合_第2页
语法、词法分析结合_第3页
语法、词法分析结合_第4页
语法、词法分析结合_第5页
资源描述:

《语法、词法分析结合》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、语法、词法分析结合一、实验目的与要求通过设计、编制、调试一个典型的语法分析程序(任选有代表性的语法分析方法,如算符优先法、递归下降法、LL(1)、SLR(1)、LR(1)等,作为编制语法分析程序的依据),对扫描器所提供的单词序列进行语法检查和结构分析,实现并进一步掌握常用的语法分析方法。二、实验内容选择对各种常见高级程序设计语言都较为通用的语法结构作为分析对象,给出其文法描述(注意应与所采用的语法分析方法比较贴近),设计并实现一个完整的语法分析程序(分析过程暂不嵌入任何的语义动作)。输入:由实验一输出的单词串,例如:UCON

2、,PL,UCON······输出:对于输入的符号串,若是给定文法定义的合法句子,则输出“RIGHT”,并且给出每一步分析过程;若不是句子,即输入串有错误,则输出“ERROR”,并且显示分析至此所得的中间结果,如分析栈、符号栈中的信息等,以及必要的出错说明信息。三、一般实现方法说明例如,以如下文法G2所定义的算术表达式的赋值语句作为分析对象,编写并调试一个语法分析程序。G2[<复合语句>]:<复合语句>→begin<语句表>end<语句表>→<语句>

3、<语句>;<语句表><语句>→<赋值语句><赋值语句>→<变量>:=<算术表

4、达式><算术表达式>→<项>

5、<算术表达式>+<项>

6、<算术表达式>-<项><项>→<因式>

7、<项>*<因式>

8、<项>/<因式><因式>→<变量>

9、<常数>

10、(<算术表达式>)<变量>→<标识符><标识符>→<标识符><字母>

11、<标识符><数字>

12、<字母><常数>→<整数>

13、<浮点数><整数>→<数字>

14、<数字><整数><浮点数>→•<整数>

15、<整数>•<整数><字母>→A

16、B

17、C

18、…

19、X

20、Y

21、Z

22、a

23、b

24、c

25、…

26、x

27、y

28、z<数字>→0

29、1

30、2

31、…

32、9说明:1)可将以上文法G2[<复合语句>]中的语法范畴<常数>替换为实验一

33、中的文法G1[<无符号数>],并将单词类型——无符号常数进一步细分成整数和浮点数两类单词。2)注意修改实验一中的词法分析程序,将它编写为子程序的形式,以便供语法分析程序调用,从而在对源程序的一遍扫描过程中,同时完成词法和语法分析任务。3)应加强错误检查,对输入符号串中的词法、语法错误,给出必要的说明信息,尽可能多地、确切地指出错误的位置、原因和性质。例如,在词法分析阶段,对当前正在处理的字符ch,可进一步定义一些与该字符相关的信息row和col,分别表示该字符所在的行和列,这些内容在出错处理时用来提供和源程序位置相关的信息。

34、即定义:charch;/*Thecurrentcharacter*/introw;/*Thelinenumberpositionofthecurrentcharacter*/intcol;/*Thecolumnnumberpositionofthecurrentcharacter*/四、基本实验题目题目:对算术表达式的一个简化子集,根据如下其语法结构的BNF定义G3[<算术表达式>],任选学过的一种语法分析方法,针对运算对象为无符号数的四则运算,编制一个语法分析程序。G3[<算术表达式>]:<算术表达式>→<项>

35、<算术表达

36、式>+<项>

37、<算术表达式>-<项><项>→<因式>

38、<项>*<因式>

39、<项>/<因式><因式>→<运算对象>

40、(<算术表达式>)若将非终结符号<算术表达式>、<项>、<因式>和<运算对象>分别用E、T、F和i代表,则G3可写成:E→T

41、E+T

42、E-TT→F

43、T*F

44、T/FF→i

45、(E)本部分用SLR(1)分析器的开发。可以根据文法G3[<算术表达式>]构造识别其全部活前缀的DFA,再据此构造SLR(1)分析表,然后编程实现SLR(1)分析表的驱动程序,即LR分析器的总控程序,完成对算术表达式的识别。主要是用三维字符数组构造

46、一个slr(1)的状态转移表,然后主控程序控制查询三维数组,调用一次词法分析再调用一次语法分析。五、源程序说明:因为后面两个程序都是在第一个基础上改进的,所以工程的名字始终是“词法分析”**********************词法分析.h#include#include#include#include#include#defineLB0//左括号#defineRB1//右括号#definePL2#defineMI3#defineM

47、U4#defineDI5#defineUCON6//Supposetheclassnumberofunsignedconstantis7#defineOVER7//#defineINT7#defineLT8#defineLE9#defineEQ10#defineNE11#defineGT1

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

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

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