第05章 自顶向下语法分析方法.pptVIP

  • 3
  • 0
  • 约1.27万字
  • 约 54页
  • 2017-09-09 发布于湖北
  • 举报
第05章 自顶向下语法分析方法

提取左公共因子 若文法中含有形如:A→??|??的产生式,这导致了对相同左部的产生式其右部的FIRST集相交,也就是SELECT(A→??)∩SELECT(A→ ??) ≠?,不满足LL(1)文法的充分必要条件。 现将产生式A→??| ??进行等价变换为: A→ ?(?|?) 其中‘(’,‘)’为元符号,可进一步引进新非终结符A′,去掉‘(’,‘)’使产生式变换为: A→?A′ A′→?|? 写成一般形式为: A→ ?? 1| ?? 2|…| ?? n,提取左公共因子后变为: A→ ? (?1| ?2|…| ?n),再引进非终结符A′,变为: A→ ? A′ A′→?1| ?2|…| ?n 若在?i、 ?j、 ?k … (其中1≤i,j,k≤n)中仍含有左公共因子,这时可再次提取,这样反复进行提取直到引进新非终结符的有关产生式再无左公共因子为止。 例5.6 若文法G1的产生式为: (1) S→aSb (2) S→aS (3) S→ε 请提取文法中的左公因子。 解答: 对产生式(1)、(2)提取左公因子后得: S→ aS(b|ε) S→ε 进一步变换为文法G′1: S→aSA A→b A→ε S→ε 例5.7 若文法G2的产生式为: (1) A→ad (2) A→Bc (3) B→aA (4) B→bB 请提取文法中的隐式左公因子。 产生式(2)的右部以非终

文档评论(0)

1亿VIP精品文档

相关文档