以下是我试图查看它是否含糊不清的一段语法的摘录。检查语法歧义
Y->b
Y->Z
Z->bW
W->d
W->ϵ
当我计算第一套语法我偶然发现了这种不规则的第一Y.
First(Y) = {b,First(Z)}
First of Z = b so I have the set First(Y)={b,b}.
的我想知道的是,足以证明语法给出这方面的证据是否具有模糊性。或者应该设置为First(Y) = {b}
。
以下是我试图查看它是否含糊不清的一段语法的摘录。检查语法歧义
Y->b
Y->Z
Z->bW
W->d
W->ϵ
当我计算第一套语法我偶然发现了这种不规则的第一Y.
First(Y) = {b,First(Z)}
First of Z = b so I have the set First(Y)={b,b}.
的我想知道的是,足以证明语法给出这方面的证据是否具有模糊性。或者应该设置为First(Y) = {b}
。
为了证明语法是不明确的,你只需要证明至少有两种不同的方法来达到结果。
考虑你的榜样,并考虑你的编辑,你确实有一个模糊的语法,因为你可以通过导出表情b
:
Y -> b
Y -> Z
Z -> bW
Y -> d
W -> ϵ
第一种方式:
Y -> b
第二种方式:
Y -> Z
Y -> Z -> bW
Y -> Z -> bW -> bϵ
Y -> Z -> bW -> bϵ -> b
这是一个模棱两可的语法。
我应该注意到E在这个例子中实际上是epsilon,所以你是对的。 –
@StephenHynes编辑考虑您的评论! – Rubens
我认为你已经证明的是,它不是LL1 –
只是意味着我必须完成它并构建解析表。只是好奇看到这样的一套。 –