我正在为考试修改考试题目。其中一个问题是从前一个问题中计算的第一个和后一个集合构造一个LL(1)解析表。
现在我几乎肯定我已正确构造了第一个和后续集合,并且表格中没有任何重复条目,所以我认为语法是有效的LL(1)语法(我们是要求确定它是否有效,因此我需要构建表格。
然而,下一个问题是将语法转换为有效的LL(1)语法,显然意味着它不是LL(1)
所以我的问题实际上是2个问题。
由于存在没有任何条目的列,语法不是LL(1)语法吗?
OR
如果在LL(1)解析表中允许这样做,我是否最有可能创建第一个和后续集?
这是我解决问题和框中的语法 http://imgur.com/UwmOAvX
答案 0 :(得分:1)
列完全可以没有符号 - 这只是意味着所讨论的终端不在任何非终端的FIRST集合中,这对于那些在任何地方都没有出现在引导上下文中的符号很容易发生(例如,)
通常会是这样的符号。)
在您的情况下,问题似乎是您忘记将规则B -> B v
放入表格中。您在FIRST(D)和FOLLOW(B)中也有错误 - 后者来自前者。