电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

编译原理语法分析报告

编译原理语法分析报告_第1页
1/13
编译原理语法分析报告_第2页
2/13
编译原理语法分析报告_第3页
3/13
下载后可任意编辑《编译原理》课程实验报告哈尔滨工程大学软件学院2024 年 5 月实验 2:语法分析一、实验目的1. 巩固对语法分析的基本功能和原理的认识。2. 通过对语法分析表的自动生成加深语法分析表的认识。3. 理解并处理语法分析中的异常和错误。二、实验内容本程序是基于已构建好的某一个语法的预测分析表来对用户的输入字符串进行分析,推断输入的字符串是否属于该文法的句子。基本实现思想:接收用户输入的字符串(字符串以“#”表示结束)后,对用做分析栈的一维数组和存放分析表的二维数组进行初始化。然后取出分析栈的栈顶字符,推断是否为终结符,若为终结符则推断是否为“#”且与当前输入符号一样,若是则语法分析结束,输入的字符串为文法的一个句子,否则出错若不为“且与当前输入符号一样则将栈顶符号出栈,当前输入符号从输入字符串中除去,进入下一个字符的分析。若不为“#”且不与当前输入符号一样,则出错。若栈顶符号为非终结符时,查看预测分析表,看栈顶符号和当前输入符号是否构成产生式,若产生式的右部为 ε,则将栈顶符号出栈,取出栈顶符号进入下一个字符的分析。若不为 ε,将产生式的右部逆序的入栈,取出栈顶符号进入下一步分析。题目 语法分析器的设计与实现专业 软件工程 班级 学号 姓名 指导老师 下载后可任意编辑程序流程图:本程序中使用以下文法作对用户输入的字符串进行分析:E→TE’’→+TE’|εT→FT’T’→*FT’|εF→i|(E)该文法的预测分析表为:代码:package zhuangms.com;import java.io.*;public class LL {String Vn[] = { "E""T", "T'", "F" }; // 非终结符集String Vt[] = { "i", "+", "*", "(", ")", "#" }; // 终结符集String P[][] = new String[5][6]; // 预测分析表String fenxi[] ; // 分析栈int count = 1; // 步骤int count1 = 1;//’分析栈指针int count2 = 0, count3 = 0;//预测分析表指针String inputString = ""; // 输入的字符串下载后可任意编辑boolean flag;public void setCount(int count, int count1, int count2, int count3){this.count = count; this.count1 = count1;this.count2 = count2;this.count3 = count3;flag = false;}public void setFenxi() { // 初始化分析栈fenxi = new String[20];fenxi[0] = "#";fenxi[1] = "E";}public void setP() { //...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

编译原理语法分析报告

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部