第三篇 语法分析.ppt

  1. 1、本文档共183页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* I6: E→E+.T GOTO(I1,+)=closure({E→E+.T})= I6 T→.T*F GOTO(I1,其他符号)为空 T→.F F→.(E) F→.i I7: T→T*.F GOTO(I2,*)=closure({T→T*.F})= I7 F→.(E) GOTO(I2,其他符号)为空 F→.i GOTO(I3,其他符号)为空 I1: E→E. E→E.+T I2: E→T. T→T.*F * I8: F→(E.) GOTO(I4,F)=closure({F→(E.),E→E.+T})= I8 E→E.+T GOTO(I4,T)= I2 ∈LR(0) GOTO(I4,F)= I3 ∈LR(0) GOTO(I4,()= I4 ∈LR(0) GOTO(I4,i)= I5 ∈LR(0) GOTO(I4,+)=φ GOTO(I4,*)=φ GOTO(I4,))=φ GOTO(I5,其他符号)=φ I9: E→E+T. GOTO(I6,T)=closure({E→E+T.,T→T.*F})= I9 E→T.*F GOTO(I6,F)= I3 GOTO(I6,()= I4 GOTO(I6,i)= I5 I4: F→(.E) E→.E+T E→ .T T→.T*F T→.F F→.(E) F→.i * I10:T→T*F. GOTO(I7,T)=closure({T→T*F .})= I10 GOTO(I7,()= I4 GOTO(I7,i)= I5 I11:F→(E). GOTO(I8,))=closure({F→(E) .})= I11 GOTO(I7,()= I4 GOTO(I7,i)= I5 求完所有Ii的后继 GOTO(I8,+)= I6 GOTO(I9,*)= I7 GOTO(I10,所有符号)=φ, GOTO(I11,所有符号)=φ * (3)构造DFA M=(S, V, GOTO, S0, Z) S ={I0, I1, I2, …, I11}=LR(0) V ={+, *, i, (, ), E, T, F} GOTO(Im , X)= Im S0=I0 Z=S-{I0}={I1, I2, …, I11} M的图解表示如下: * I0 I5 I2 I4 I3 I1 I11 I8 I6 I10 I7 I9 start E + + i F ( T T F ( i F ( i E ( * * ) + i F * 关于自动机的说明: 1 除I0以外,其余状态都是活前缀的识别状态,从I0到每一状态 的每条路径都识别和接受一个规范句型的活前缀 如对文法句子i+i*i 进行规范规约, 所得到的规范句型的活前缀都可 以由该自动机识别,如: I0~I3 F(+i*i) I0~I2 T(+i*i) I0~I1 识别规范句型的活前缀E(+i*i) I0~I6 识别规范句型的活前缀E+(i*i) I0~I7 识别规范句型的活前缀E+T*(i) I0~I9 识别规范句型的活前缀E+T(*i) I0~I10 识别规范句型的活前缀E+T*F E E T + T T * F F i i 8 5 F i 7 4 3 2 1 (0) E’→E (3) T→T*F (6) F→i E→E+T (4) T→F E→T (5) F→(E) 6 * 2 要求状态中每个项目对该状态能识别的活前缀都 有效. 有效项目定义:若项目A→ β1 .β2,对活前缀αβ1 有效,则其条件是存在规范推导 E’?αAw ? αβ1β2 w 注意:项目中圆点前的符号串成为活前缀的后缀 * * * 3 有效项目能预测分析的下一步动作: E→E+T. 表示已将输入串规约为E+T,下一步应

文档评论(0)

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

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

1亿VIP精品文档

相关文档