我有一个删除了左递归的语法,它也被遗忘了。
我已经创建了FIRST集,这是一项非常简单的任务,但构建FOLLOW集是有问题的。我试图找到有用的例子,但没有找到任何可以帮助我的方法。
这是语法:
St是起始符号。
St -> St'
St' -> i S'
E -> i E'
E' -> [ E ] E'
E' -> ε
S' -> = E
S' -> [ E ] = E
相应的FIRST集
E = { i }
E' = { [, ε }
S' = { [, = }
St = { i }
St' = { i }
现在,构建跟随集的规则来自http://www.jambe.co.nz/UNI/FirstAndFollowSets.html非常简单,但我不知道如何正确应用它们。
到目前为止我已经构建的关注集是:
E = {}
E' = {}
S' = {}
St = {$}
St' {$}
但在此之后我不知道如何继续。一些提示是最受欢迎的,我不希望得到完整的解决方案,只是一些提示,所以我可以理解构建跟随设置是如何工作的。
答案 0 :(得分:2)
关注集规则
首先将$(输入标记的结尾)放在Follow(S)中(S是起始符号) 如果有生产A→aBb,(其中a可以是整个字符串)那么FIRST(b)中除ε之外的所有内容都放在FOLLOW(B)中。
如果有生产A→aB,那么FOLLOW(A)中的所有内容都在FOLLOW(B)
如果有生产A→aBb,其中FIRST(b)包含ε,那么FOLLOW(A)中的所有内容都在FOLLOW(B)中 根据以上规则您的答案是:
E = { ] }
E' = { ] }
S' = { $ }
St = { $ }
St'= { $ }