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

  • 3
  • 0
  • 约6.37千字
  • 约 49页
  • 2017-09-09 发布于湖北
  • 举报
第五章 自顶向下语法分析

2.左递归问题 【例】文法G[E]: E→E+T|T T→T*F|F F→(E)|i 给出i*i+i自顶向下的分析过程。 要实行自顶向下分析,必须要消除文法的左递归 从左向右扫描源程序,同时实施最左推导 E E + T E + T E + T … 失败:由于使用最左推导,对左递归文法进行自顶向下分析时,会导致死循环。 将左递归规则改为右递归规则 A→A?|? 【例】文法G[E]: E→E+T| T T→T*F| F F→(E)|i E→TE E→+TE|? T→FT T→*FT|? F→(E)|i 消除左递归 A→?A A→?A|? (1)消除直接左递归 消除直接左递归——课内练习 文法G : P ? PaPb|BaP 转化为: P ?BaPP` P` ?aPbP`| ? 注:只有最左边的P参加变换。 (2)消除间接左递归(了解自学) 先通过产生式进行非终结符置换 将间接左递归变为直接左递归 消除直接左递归 把置换的产生式加入 详例见书文法G6,P89 5.3 某些非LL(1)文法到LL(1)文法的等价转换 消除左递归和提取公共左因子 【例】 G[S]: S→aSb|A A→bAc|bBc B→Ba|a S→aSb|A A→bAc|bBc B→aB B→aB|? 消除左递归 提取公因子 S→aSb|A A→bA A→Ac|Bc B→aB B→aB|? L

文档评论(0)

1亿VIP精品文档

相关文档