实验二--语法分析程序的设计-.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《实验二--语法分析程序的设计-.doc》由会员分享,可在线阅读,更多相关《实验二--语法分析程序的设计-.doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验二 语法分析程序的设计姓名: 学号: 专业班级一、实验目的通过设计、编制、调试一个典型的语法分析程序,实现对词法分析程序所提供的单词序列进行语法检查和结构分析,进一步掌握常用的语法分析中预测分析方法.二、实验内容设计一个文法的预测分析程序,判断特定表达式的正确性。三、实验要求1、 给出文法如下:GE ETE+T; TF|T*F; F-i(E);2、 根据该文法构造相应的LL(1)文法及LL(1)分析表,并为该文法设计预测分析程序,利用C语言或C+语言或Java语言实现;3、 利用预测分析程序完成下列功能:1) 手工将测试的表达式写入文本文件,每个表达式写一行,用“;表示结束;2) 读入文本
2、文件中的表达式;3) 调用实验一中的词法分析程序搜索单词;4) 把单词送入预测分析程序,判断表达式是否正确(是否是给出文法的语言),若错误,应给出错误信息;5) 完成上述功能,有余力的同学可以进一步完成通过程序实现对非LL(1)文法到LL(1)文法的自动转换(见实验二附加资料1)。四、实验环境PC微机DOS操作系统或 Windows 操作系统Turbo C 程序集成环境或 Visual C+ 程序集成环境五、实验步骤1、 分析文法,将给出的文法转化为LL(1)文法;2、 学习预测分析程序的结构,设计合理的预测分析程序;3、 编写测试程序,包括表达式的读入和结果的输出;4、 测试程序运行效果,测
3、试数据可以参考下列给出的数据。六、测试数据 输入数据:编辑一个文本文文件expression。txt,在文件中输入如下内容:10;1+2;(1+2)*3+(5+6*7);(1+2)*3+4;1+2+3+(*4+5);(a+b)*(c+d);(ab3+de4)*5)+1;正确结果:(1)10;输出:正确(2)1+2;输出:正确(3)(1+2)3+(5+67);输出:正确(4)(1+2)3+4输出:错误(5)1+2+3+(*4+5)输出:错误(6)(a+b)(c+d)输出:正确(7)(ab3+de4)*5)+1输出:错误七、源代码import java.util.;import java.io。;
4、public class test2 static String key_word = ”main, ”if”, ”then”, ”while, ”do”, int,”else ;static String cal_word = +”, -”, ”, ”/, , ”, ”, ”, ”(”,)”, ”, ”, ”=”, ”!=, !”, =”, =”, =”, ”+=”, ”-=”, ”=”,/=, ”;” ;/ * 给定文法GE: E-TE+T; TFT*F; Fi(E); */static String gram = ”ETA”, A+TA, ”A-”, ”T-FB, ”BFB”,”B, ”
5、FP”, F(E)” ;static String followE = ”)”, ” ;static String followEA = ”)”, #” ;static String followT = ”+”, ”)”, ” ;static String followTB = ”+”, ), # ;static String followF = ”, ”+”, ”), ;static String firstE = i, ”( ;static String firstEA = ”+, ;static String firstT = ”i”, ( ;static String firstTB
6、= ”*”, ” ;static String firstF = ”i”, ”(” ;static String list = ”, ”i, +”, ”, (”, ”)”, ”#” , ”E”, ”TA”, null, null, ”TA”, null, null , ”A, null, ”+TA, null, null, ”, ” , ”T, FB”, null, null, ”FB”, null, null , ”B, null, , ”*FB”, null, ”, ” , ”F”, i, null, null, (E)”, null, null ;public static void s
7、can(String infile,String outfile, StackString word, StackString expression)throws Exception java。io。File file = new java。io。File(infile);Scanner input = new Scanner(file);java.io。PrintWriter output = new PrintWriter(outfile);int count = 0;wordcount。push(”#);while (input.hasNext() String tmp = input。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 语法分析 程序 设计
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内