0

我有一个关于 LL1 语法的问题。如果我们有这样的语法:

<S>::=<A>
<A>::=<A> car cat | epsilon

第一个<A>可以是什么?它只是epsilon吗?如果它只是 epsilon,那么语言就不可能是 LL1!我很困惑...

4

1 回答 1

0
 First(A) = {epsilon, car}

如果 A 是非终结符且 A : a α 是产生式,则将 a 添加到 First( A )。如果 A : epsilon 是一个产生式,则将 epsilon 添加到 First( A )。

如果 A : α1 α2 α3 ... αm 是一个产生式,则将 First( α1 ) 添加到 First( A )。如果 α1 派生 epsilon,则将 First(α2) 添加到 First(A)。如果 α1 和 α2 都导出 epsilon,则将 First(α3) 添加到 First(A),依此类推。

于 2013-05-02T10:21:40.403 回答