0

我正在为考试做复习题。其中一个问题是从前一个问题中计算的第一个和后续集合构建一个 LL(1) 解析表。

现在我几乎可以肯定我已经正确构建了第一个和后续集合,并且该表的任何单元格中都没有任何重复的条目,所以我假设该语法是有效的 LL(1) 语法(我们被要求确定如果它是有效的,那么为什么我需要构建表格)。

然而下一个问题是将语法转换为有效的 LL(1) 语法,显然暗示它不是 LL(1)

所以我的问题实际上是2个问题。

由于有一列没有任何条目,因此该语法不是 LL(1) 语法吗?

或者

如果这在 LL(1) 解析表中是允许的,那么我很可能在创建第一个和后续集时出错了吗?

这是我解决的问题和框中的语法 http://imgur.com/UwmOAvX

4

1 回答 1

1

列没有符号是完全可以的——这只是意味着有问题的终端不在任何非终端的第一个集合中,这对于没有出现在任何地方的前导上下文中的符号很容易发生(例如, a)通常是这样的符号。)

在您的情况下,问题似乎是您忘记将规则B -> B v放入表中。您在 FIRST(D) 和 FOLLOW(B) 中也有错误——后者来自前者。

于 2013-08-21T22:29:50.420 回答