一、 LL(1)文法的判别条件

若一个文法满足以下条件,则称该文法G为LL(1)文法:

编译原理——第四章-LL(1)文法的判别条件、构造文法的预测分析表

例题

有文法
G(S):
S → S*aP | aP | *aP
P → +aP | +a
(1)判断该文法是否为LL(1)文法,如果不是,请改写成LL(1)文法

解:不是,因为 S → S*aP | aP | *aP 中含有左递归,P → +aP | +a 中含有左公共因子

改写:
① 消除左递归
S → aP S’| *aPS’
S’ → *aPS’|ε
P → +aP | +a

②提取左公共因子
S → aP S’| *aPS’
S’ → *aPS’|ε
P → +aP’
P’→P|ε

编译原理——第四章-LL(1)文法的判别条件、构造文法的预测分析表

改写完成满足条件1、2、3

二、构造文法的预测分析表

相关文章:

  • 2021-07-08
  • 2021-08-09
  • 2022-12-23
  • 2022-02-21
  • 2022-12-23
  • 2022-12-23
  • 2022-01-24
  • 2021-04-05
猜你喜欢
  • 2021-12-18
  • 2021-11-08
  • 2021-12-09
  • 2021-09-27
  • 2021-10-01
  • 2021-10-28
  • 2021-12-20
相关资源
相似解决方案