2014-10-03 53 views
0

我有一個語法,它的左遞歸被刪除,它也被考慮在內。構建一個語法的關注集

我創建了FIRST集合,這是非常簡單的任務,但構建FOLLOW集合是有問題的。我試圖找到有用的例子,但沒有找到任何幫助我的例子。

這裏是語法:

St是開始符號。

St -> St' 
St' -> i S' 
E -> i E' 
E' -> [ E ] E' 
E' -> ε 
S' -> = E 
S' -> [ E ] = E 

而相應的第一組是

E = { i } 
E' = { [, ε } 
S' = { [, = } 
St = { i } 
St' = { i } 

現在,爲建設後續集中的規則是從http://www.jambe.co.nz/UNI/FirstAndFollowSets.html是非常簡單的,但我不知道如何正確地應用它們。到目前爲止,我已經構建

關注集:

E = {} 
E' = {} 
S' = {} 
St = {$} 
St' {$} 

但畢竟這我不知道如何着手。一些技巧將是最受歡迎的,我不期望得到這個問題的完整解決方案,只是一些提示,所以我可以瞭解如何建設跟隨集工作。

回答

2

規則按照設定在關注(S)

  • 先把$(輸入標誌的結束)(S是開始符號) 如果有一個生產A→ABB(其中一可以是一個完整的字符串),那麼除了ε之外,FIRST(b)中的所有內容都放在FOLLOW(B)中。

  • 如果有一個生產A→AB,然後在如下(A)一切都在FOLLOW(B)

  • ,如果有一個生產A→ABB,其中FIRST(B)含有ε,則在FOLLOW(A)一切都在FOLLOW(B) 根據以上規則你的答案是:

    E = { ] } 
    
    E' = { ] } 
    
    S' = { $ } 
    
    St = { $ } 
    
    St'= { $ }