2010-04-28 42 views
0

我目前正在從下面的語法構造LR(1)狀態。LR(1)解析時處理無限循環

S->AS 
S->c 
A->aA 
A->b 

where A,S are nonterminals and a,b,c are terminals. 

這是I0

I0: S' -> .S, epsilon 
    --------------- 
    S -> .AS, epsilon 
    S -> .c, epsilon 
    --------------- 
    S -> .AS, a 
    S -> .c, c 
    A -> .aA, a 
    A -> .b, b 

和I1的建設。

From S, I1: S' -> S., epsilon //DONE 

依此類推。但是,當我去構建I4 ...

From a, I4: A -> a.A, a 
     ----------- 
     A -> .aA, a 
     A -> .b, b 

問題是 A - > .aA

當我嘗試建立從下一個狀態,我會再次得到完全相同的I4內容,並且這個過程無限延續。類似的循環發生在

S -> .AS 

那麼,我做錯了什麼?必須詳細說明我錯過了什麼,但是我瀏覽了我的筆記和我的書,要麼找不到,要麼只是不明白這裏有什麼問題。任何幫助?

回答

0

我很確定我想出了答案。很顯然,國家可以相互指向,這樣就可以免除在內容已經存在的情況下創建新的。不過,如果有人能證實這一點,我仍然會喜歡它。