【问题标题】:Computing the FIRST & FOLLOW sets of a grammar计算语法的 FIRST 和 FOLLOW 集
【发布时间】:2019-12-08 17:47:02
【问题描述】:

我的语法如下:

S -> aXab
S -> Y
X -> bYa
X -> epsilon
Y -> Sc

我已经计算了这个语法的第一组和后一组,我想知道它是否正确。这是我的解决方案:

First Sets:
S -> {a} 
X -> {b,epsilon}
Y -> {a}

Follow Sets:
S -> {$,c} 
X -> {a}
Y -> {c,a}

感谢任何帮助。谢谢。

【问题讨论】:

    标签: parsing compiler-construction lr1


    【解决方案1】:

    FIRST 组是正确的。 FOLLOW(Y) 应该是 {$,c,a}

    FOLLOW(A) 定义是

    FOLLOW(A) of non-terminal A is the set of terminal symbols that can follow in the   
    derivation sequence
    

    FOLLOW(Y),检查右边的位置

            1) X -> bYa
    

    当这个产生式被推导时,Y 后面是'a'

            2) S -> Y
    

    当这个产生式被用于推导时,Y 之后是什么,S 之后是什么。FOLLOW(S)={$,c}

         FOLLOW(Y)={$,a,c}
    

    【讨论】:

      猜你喜欢
      • 2013-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多