软件学院2015.32015.613语法分析-lr1方法_第1页
软件学院2015.32015.613语法分析-lr1方法_第2页
软件学院2015.32015.613语法分析-lr1方法_第3页
软件学院2015.32015.613语法分析-lr1方法_第4页
软件学院2015.32015.613语法分析-lr1方法_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章:语法分析 LR(1)方法例子设有文法G:SL=RSRL*RLiRLSL=RSRL*RLiRLLSL=RRLSLR(1)问题所在ZB1aB2bB3c BdSLR(1)归约时向前看一个符号,但是不区分语法符号的不同出现。上述文法中,B出现了三次,很显然B1的后继符只能是a,B2 的后继符只能是b,B3的后继符只能是c,而Follow(B)=a,b,c,用SLR(1)就失去了精度。几种LR方法的简单对比LR(0)方法不依赖输入流,直接判定归约,容易出现冲突。SLR(1)方法简单的把非终极符的follow集做为可归约的依据,并不精确。一个非终极符在不同的位置上出现,它所允许的后继符是不同的。L

2、R(1)针对不同产生式上的非终极符,分别定义其后继符集,减少了移入/归约、归约/归约冲突。LR(1)基本思想构造各种LR分析器的任务就是构造其action表和goto表,其他部分基本相同。LR(1)的基本思想是对非终极符的每个不同出现求其后继符,而不是给每个非终极符求其统一的后继符,我们称其为展望符集。LR(1)项目、投影LR(1)项目:A, a,即LR(0)项目及一个VT#的展望符组成的二元组。用IS表示LR(1)项目的集合,简称LR(1)项目集。其中,项Z的展望符为# IS(X):LR(1)项目集IS对于X的投影IS(X) =AX,a|AX,aIS LR(1)闭包集、GO函数CLOSURE

3、(IS)= ISA,a|B1A2,bCLOSURE(IS),A是产生式,aFirst(2b) GO:若IS是一个LR(1)项目集,X是一个文法符号,则GO(IS,X)=CLOSURE(IS(X)。可归前缀图的构造产生初始项目集IS0,且IS0ISS IS0=CLOSURE(Z,#),其中Z为开始符。若ISiISS,XVTVN,则定义ISj=GO(ISi,X),若ISj不空且不属于ISS则将ISj加入ISS,建立ISi到ISj的X映射,重复该过程,直到ISS不产生新状态。例子有文法:ZBBBaBBbb2ZBB #B0ZBB #BaB a/bBb a/bBb3Bb #1ZBB #BaB #Bb #

4、 4Bb a/ba5BaB #BaB #Bb # bB8BaB #a6BaB a/bBaB a/bBb a/baabB7BaB a/bLR分析表action表goto表ab#B0S6S411S5S322AC3R34R3R35S5S386S6S477R2R28R2有文法:1ZBB2BaB3Bb状态栈 符号栈 输入串 Action GoTo0 abaab# S6 0,6 a baab# S40,6,4 ab aab# R3 70,6,7 aB aab# R210,1 B aab# S50,1,5 Ba ab# S50,1,5,5 Baa b# S30,1,5,5,3 Baab # R3 80,1,

5、5,5,8 BaaB # R2 80,1,5,8 BaB # R2 20,1,2 BB # AC 习题设文法GS为:SASSAaAAb 证明GS是LR(1)文法;构造它的LR(1)分析表;给出符号串abab#的分析过程02534AaGZ:ZS0SAS1S2AaA3 Ab4 ZS0#S AS1S 2AaA3Ab4#ab#ab#1ZS#SSA S1#S AS1S 2AaA3Ab4#ab#ab#AaA3AaA3Ab4Ab 4bab#ab#ab#ab#SA S 1#aSAa6ab#AaA 3Abbab#0S3S4R21Acc2S3S4R23S3S44R4R4R45R16R3R3R3AS021122536456actiongotoGZ:ZS0SAS1S2AaA3 Ab4 状态栈符号栈输入流0#abab#03#a bab #034#ab ab #

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论