【问题标题】:Follow Set of grammar遵循一套语法
【发布时间】:2018-09-17 09:12:55
【问题描述】:

我正在尝试计算以下语法的 FOLLOW 集:

E -> TX
T -> int Y | ( E )
X -> + E | ε
Y -> * T | ε

到目前为止,我已经计算出以下 FOLLOW 集:

follow (E) = {$} U {)}
follow (Y) = follow (T)
follow (T) = follow (Y)
follow (X) = follow (E) = {$, )}
follow (E) = first ()) = {)}

我知道 follow (T) / follow (Y) 包含 {+,$,)} 但我正在努力达到这一点。

在此处解释该方法的任何帮助都会非常有帮助。

注意:我已遵守这些规则

1)  If A is the start symbol put $ in Follow (A)
2)  If there is a production B -> αAb, then Follow (A) = First (b) 
3)  If there is a production B -> aA or B -> αAb where First (b) is ε, add Follow (A) = Follow (B)

【问题讨论】:

  • 可能你的语法不完整。 ) 来自哪里?
  • 你错了!谢谢。

标签: parsing compiler-construction set grammar set-theory


【解决方案1】:

我已经想通了(并度过了下午的大部分时间)!

因此,对于发现此问题的任何人,我都遵循的规则是:

follow(E) = follow(T)
follow(E) = first ())
follow(X) = follow(E)
follow(Y) = follow(T)
**follow(T) = first(X)** //the important one!

按照这些规则,您可以构建集合:

follow(E) = {$, )}
follow(T) = {$, ), +}
follow(X) = {$, )}
follow(Y) = {$, ), +}

以下是语法的总结!

【讨论】:

    猜你喜欢
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多