第一& Follow Sets检查简单语法

时间:2009-05-12 16:29:23

标签: grammar

这是我在课堂上进行测验的几个问题,只是想验证它们的正确性。 语法:

S -> ABC
A -> df | epsilon
B -> f | epsilon
C -> g | epsilon

1。)B的跟随集包含g和epsilon(T / F)?答案:F Follow套装中没有epsilon,对吗? (只有$ aka输入结束)

2。)第一组S包含d,f,g和epsilon(T / F)?答案:T。 我说这是假的,因为我认为First(S)= First(A),g不是其中的一部分。谁是对的?

1 个答案:

答案 0 :(得分:4)

  1. 你是对的。如果涉及epsilon,它将在First set中计算,而不是Follow set。如果制作可以结束字符串,则$进入Follow集,而不是epsilon。
  2. 测验是正确的。生产S确实可以从d,f和g中的任何一个开始,并且它也可以由空字符串启动。考虑输入字符串g。它匹配S,对吗?空字符串满足A,空字符串满足B,g满足C。由于A,B和C都满足,因此满足S. S消耗的第一个字符是g,因此g必须在First(S)中。