语法分析-预测分析方法

语法分析-预测分析方法

ID:20738250

大小:328.50 KB

页数:14页

时间:2018-10-15

语法分析-预测分析方法_第1页
语法分析-预测分析方法_第2页
语法分析-预测分析方法_第3页
语法分析-预测分析方法_第4页
语法分析-预测分析方法_第5页
资源描述:

《语法分析-预测分析方法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验2-1语法分析一预测分析方法一、实验目的使用预测分析方法编制分析程序,实现对词法分析程序所提供的单词序列的语法检査和结构分析。了解预测分析法和递归子程序法的区别和联系,培养动手实践的能力。二、实验内容使用预测分析法分析一段程序代码。如果符合文法定义,程序输出“是”,否则输出“否”。由于预测分析和递归子程序都是自顶向下的分析方法,这里给出无回溯的和无左公因子的文法。无左递归和无左公因子的BNF如下:<程序>_><程序首部><分程序>.<程序首部〉-PROGRAM标识符;<分程序>-><常量说明部分

2、><变量说明部分><过程说明部分><复合语句><常量说明部分〉^(3051'<常量定义><常量定义后缀>加<常量定义>-4示识符=无符号整数<常量定义后缀>->,<常量定义><常量定义后缀>

3、s<变量说明部分>->VAR<$量定义><变量定义后缀〉<变量定义>->标识符<标识符后缀>:<类型>;<标识符后缀>->,标识符<标识符后缀〉<变量定义后缀>—<变量定义><变量定义后缀>

4、s〈类型〉->INTEGER

5、LONG<过程说明部分>—<过程首部><分程序>;<过程说明部分后缀>

6、s<过程首部〉-

7、PROCEDURE标识符〈参数部分〉:<参数部分>->(标识符:<类型〉加<过程说明部分后缀>-><过程首部><分程序>;<过程说明部分后缀>

8、s<语句〉-><赋值或调用语句〉

9、<条件语句〉

10、<当型循环语句〉

11、<读语句〉

12、<写语句〉

13、<复合语句〉<赋值或调川语句>-4示识符<后缀〉<后缀>->:=<表达式>

14、(<表达式<条件语句〉一>1F<条件〉THEN<语句〉<当型循环语句〉->WHILE<条件〉DO<语句〉<读语句>->READ(标识符<标识符后缀〉)<写语句>_>WRITE(表达式<表达式后缀

15、>)<表达式后缀>->,<表达式><表达式后缀>

16、s<复合语句〉一>BEGIN<语句〉<语句后缀〉END<语句后缀>->;<语句><语句后缀>

17、s<条件>-><表达式><关系运算符><表达xt>

18、ODD<表达式〉<表达式〉一>+<项〉<项后缀〉卜<项〉<项后缀〉

19、<项〉<项后缀〉<项后缀〉-><加型运算符〉<项〉<项后缀〉

20、e<项〉-*<因子〉<因子后缀〉<因子后缀>-><乘型运算符><因子><因子后缀〉

21、e<因子>-4示识符

22、无符号整数

23、(<表达式〉)<加型运算符>->+1-<乘型运算符>->*

24、

25、/<关系运算符〉一>=

26、<〉

27、<

28、<=

29、〉

30、〉=为了将非终结符和终结符一起存入栈,将非终结符的内码从128开始标记。其对照表如下:表1终结符种别码对照表种别码单词种别码单词种别码单词种别码单词1PROGRAM2CONST3VAR4INTEGER5LONG6PROCEDURE7IF8THEN9WHILE10DO11READ12WRITE13BEGIN14END15ODD16+17-18*19/20=21<>22<23<=24>25>=26參27礬28參,29•30•■31(32)33无符号整数34标识

31、符35林表2非终结符及函数名对照表非终结符函数名非终结符函数名<程序〉program<程序首部〉proghead<分程序〉block<常量说明部分〉consexpl<常量定义〉consdcfi<变量说明部分〉varcxpl<常量定义后缀〉conssuff<变量定义〉vardefi<变量定义后缀>varssuff<过程说明部分〉proedefi<类型〉typeil<过程首部>procedh<过程说明部分后缀>procsuff<赋值或调川语句〉assipro<语句〉sentence<后缀〉suffix<

32、条件语句〉ifsent<读语句〉read<当型循环语句>whilesent<标识符后缀>idsuff<写语句〉Write<复合语句〉compscnt<表达式后缀〉Exprsuff<语句后缀〉sentsuff<条件〉Conditio<项后缀〉termsuff<表达式〉Express<项〉term<因子后缀〉Factsuff<参数部分〉argument<因子〉Factor<加型运算符〉addoper<乘型运算符〉Muloper<关系运算符〉respoper三、完整源程序代码#include

33、h>#include#include#include#includc#definelenthl15#definelenth218/*规则表*/intrule[][6]={{0},{129,130,26,0},{1,34,28,0},//空//程序首部分程序.//program标识符;{131,134,138,150,0},//常U说明部分变U:说明部分过程说明部分复合语句{2,132,13

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

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

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