2

我试图在这个语法中找到歧义,以便我可以删除它并将其转换为 LL(1),但是对于我的生活,我找不到歧义。任何帮助都感激不尽。

D -> if (C) {S} | if (C) {S} else {S}
S -> D | SA | A
A -> V = T;
V -> x | y
T -> 1 | 2
C -> true | false
4

1 回答 1

1

语法没有歧义。尽管如此,它不是 LL(1),因为当前瞻标记是 时if,不可能知道D将使用两个产生式中的哪一个。

要使其成为 LL(1),您需要左因子 D

于 2013-05-06T03:03:27.847 回答