我有一个关于 LL1 语法的问题。如果我们有这样的语法:
<S>::=<A>
<A>::=<A> car cat | epsilon
第一个<A>
可以是什么?它只是epsilon吗?如果它只是 epsilon,那么语言就不可能是 LL1!我很困惑...
我有一个关于 LL1 语法的问题。如果我们有这样的语法:
<S>::=<A>
<A>::=<A> car cat | epsilon
第一个<A>
可以是什么?它只是epsilon吗?如果它只是 epsilon,那么语言就不可能是 LL1!我很困惑...
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),依此类推。