武汉理工大学计机科学系陈天煌.pptVIP

  • 8
  • 0
  • 约1.52万字
  • 约 41页
  • 2018-10-11 发布于江苏
  • 举报
武汉理工大学计机科学系陈天煌

例如: 有算术表达式文法G[E],构造其LR(0)项目规范簇和SLR(1)分析表。 G[E]: E→E+T?T T→T*F?F F→(E) ? i 3、解决冲突 那么,当在状态I面临某输入符号为a时,则动作可由下述规定决策: 1)若a = b,则移进。 2)若a ∈ FOLLOW(A),则用产生式A→?归约。 3)若a ∈ FOLLOW(B),则用产生式B→?归约。 一般地,对于LR(0)规范族的一个项目集I可能含有多个移进项目和多个归约项目,我们可假设项目集I中有m个移进项目: A1→?1. b1?1, A2→ ?2. b2?2, …, Am→ ?m. bm?m;同时含 有n个归约项目:B1→?1. , B2→ ?2. ,…, Bn→ ?n. ,只要集合 {b1, b2,…bm}和FOLLOW(B1),FOLLOW(B2),…,FOLLOW(Bn) 两两交集都为空,则我们仍可用上述归则来解决冲突: 1)若a∈{b1, b2,…,bm},则移进。 2)若a∈FOLLOW(Bi),i=1,…,n,则用Bi→ ?i进行归约。 3)此外,则报错。 所以,我们只须把构造LR(0)分析表算法中的规则(2),即: (2)若Ii中有归约项目A→?. ,设A→?为文法第j个产生式,则对 文

文档评论(0)

1亿VIP精品文档

相关文档