考虑与上述问题相同的日期。 E1,E2和E3的适当条目是
(A) A
(B) B
(C) C
(D) D答案: (C)
解释:
由于我们需要查找针对非终端S和B的条目E1,E2和E3,因此我们仅处理在LHS上具有S和B的产品。
这里,将解析表表示为M [X,Y],其中X代表行(非终端),Y代表列(终端)。
Rule 1: if P --> Q is a production, for each terminal
't' in FIRST(Q) add P-->Q to M [ P , t ]
Rule 2 : if epsilon is in FIRST(Q), add P --> Q to
M [ P , f ] for each f in FOLLOW(P).
对于生产规则S–> aAbB,它将被添加到解析表中的位置M [S,FIRST(aAbB)],现在FIRST(aAbB)= {a},因此将S–> aAbB添加到M [S, a],即E1。
对于生产规则S–> bAaB,它将被添加到解析表中的位置M [S,FIRST(bAaB)],现在FIRST(bAaB)= {b},因此将S–> bAaB添加到M [S, b],即E2
对于生产规则S–> epsilon,它将被添加到解析表中的位置M [S,FOLLOW(S)],现在FOLLOW(S)= {a,b,$},因此将S –> epsilon添加到M [S,a]和M [S,b]分别分别为E1和E2。
对于生产规则B –> S,它将被添加到解析表中的位置M [B,FIRST(S)],现在FIRST(S)也包含epsilon,因此将B –> S添加到M [S,FOLLOW (B)],而FOLLOW(B)包含{$},即M [S,$]为E3。
epsilon对应于空字符串。这个问题的测验