2012-11-17 27 views
1

這裏http://slkpg.byethost7.com/llkparse.html的FOLLOW_k - 設置FOLLOW-集被定義論的語法

「的FOLLOWk組 符號在一個語法的字符串的是一組K-長度終端符號串的在 語法,其可以遵循符號的一些 句型字符串推導的語法」

首先我有一個關於鏈接下的例如quation,那裏語法4.2

 A --> a <Baa> a a    
    A --> b <Bba> b a 
<Baa> --> b 
<Baa> --> 
<Bba> --> b 
<Bba> --> 

據說:

FIRST2 (A) = { aa, ab, bb } 
FIRST2 (<Baa>) = { epsilon } 
FIRST2 (<Bba>) = { epsilon } 

FOLLOW2 (<Baa>) = { aa } 
FOLLOW2 (<Bba>) = { ba } 

但我問自己,爲什麼不

FIRST2 (<Baa>) = { epsilon, b } 
FIRST2 (<Bba>) = { epsilon, b } 

因爲例如也是單B可以導出。

此外,對於語法

S -> X 
X -> aX 
X -> aY 
Y -> epsilon 

我不能確定該組

FOLLOW2(S) 

的是它爲空,{ε}或{A,AA}因爲這些字符串是衍生,或者是它只是重要的是在S之後,並且因爲S是起始符號,所以它沒有任何東西出現,但是我應該寫FOLLOW2(S)= \ empyset還是FOLLOW2(S)= {ε}?

回答

0

對於任何k,FOLLOWk(S)都是空的,因爲沒有任何東西可以跟隨S。我不知道你的意思是'因爲這些字符串是可導出的',但是因爲它們不能遵循S,所以它無關緊要。

+0

「可推導」我認爲他的意思是可以從'epsilon'獲得'aa'或'a'這樣的字符串。 (據推測是因爲生產規則允許這樣做),正如在[發音](https://en.wikipedia.org/wiki/Formal_grammar#The_semantics_of_grammars) – n611x007