【问题标题】:How Do I left factor and eliminate left recursion?我如何左因子和消除左递归?
【发布时间】:2019-01-13 23:03:54
【问题描述】:

我的生产规则如下:

S → id = Exp
S → id (Arglist)
Arglist → Arglist , Exp
Arglist → Exp
Exp → id (Arglist)
Exp → id

这是我的第一次尝试:

S -> id S'
S' -> ϵ | = EXP | (Arglist)
Arglist -> Arglist'
Arglist' -> ϵ | ,Exp Arglist'
Exp -> id Exp'
Exp' -> ϵ | (Arglist)

我的问题在于 Arglist 生产规则,我错了。

【问题讨论】:

    标签: parsing compiler-construction ll left-recursion


    【解决方案1】:

    您只需将Arglist 更改为右递归,它将识别相同的语言(解析树略有不同):

    Arglist → Exp , Arglist
    Arglist → Exp
    

    然后左因子:

    Arglist → Exp Arglist'
    Arglist' → ε | , Exp Arglist'
    

    【讨论】:

      猜你喜欢
      • 2012-12-11
      • 2014-02-10
      • 1970-01-01
      • 1970-01-01
      • 2013-06-12
      • 2011-02-08
      • 1970-01-01
      相关资源
      最近更新 更多