04131004-语法分析器概要.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
04131004-语法分析器概要

西 安年月日 实验内容 1.选择一特定文法进行LL(1)文法分析,本实验选取课本上的文法: E-TE’ E’-+TE’|ε T-FT’ T’-*FT’|ε F-(E)|i 2.生成LL(1)分析表: 3.根据生成LL(1)分析表,进行程序设计。 三.方案设计 1.为了本次实验的程序设计方便,将上面的LL(1)分析表中的非终结符E’替换为G,将T’替换为V,便于入栈和出栈的方便。M[A,a]中的空白存放一个空白的字符串。 2.预测分析器模型: 3.栈STACK用于存放文法符号。分析开始时,栈底先放一个“#”,然后放进文法开始符号。 预测分析器程序的总控程序在任何时候都是按STACK栈顶符号X和当前的输入符号行事的。对于任何(X,a),总控程序每次都会执行下述的三种可能的动作之一: 若X=a=‘#’,则宣布分析成功,停止分析过程。 若X=a!=‘#’,则把X从栈顶逐出,让a指向下一个输入符号。 若X是一个非终结符,则查看分析表M。若M[A,a]中存放着一个关于X的产生式,则先把X逐出STACK栈顶,后把产生式的右部符号串按反序一一推进STACK栈(若符号为ε,则不推进什么东西进栈)。若M[A,a]中存放着“出错标志”,程序转出错处理。 四.测试数据及运行结果 五.总结 这次实验编写了LL(1)语法分析器,在LL(1)分析器的编写中我只达到了最低要求,就是自己并没有对任意输入的符号串进行分析,手动将预测分析表构造出来了,并且没有做出对输入串的分析。? 通过本次试验,我能够设计、编制、调试一个典型的语法分析程序,进一步掌握常用的语法分析方法。还能选择最有代表性的语法分析方法,如LL(1)?语法分析程序、算符优先分析程序和LR分析分析程序。并且有能力选择对各种常见程序语言都用的语法结构,如赋值语句(尤指表达式)作为分析对象,并且与所选语法分析方法要比较贴切。 六.附录:源代码(电子版) package yuFa; public class Stack { public char STACK[]; public int Top; public Stack() { STACK=new char[200]; STACK[0]=#; Top=0; } public char GetTop()// 取出栈顶元素 { return STACK[Top]; } public void PushStack(String str)// 入栈 { for(int i=str.length() - 1; i = 0; i--) { STACK[++Top]=str.charAt(i); } } public void PushStack(char c) { Top++; STACK[Top]=c; } public void clear()// 清空 { Top=0; } public char PopStack()// 出栈 { if(Top != 0) { Top--; } return STACK[Top]; } public String toString()// 将栈中元素转化为字符串 { String tmp=; for(int i=0; i = Top; i++) { tmp+=STACK[i]; } return tmp; } } package yuFa; public class InputPredictTable { public String Table[][]=new String[6][7]; public String[][] MakeTable()// 将E改为G,将T改为V { Table[0][0]= ; Table[0][1]=i; Table[0][2]=+; Table[0][3]=*; Table[0][4]=(; Table[0][5]=);

文档评论(0)

6663144 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档