2014-10-26 60 views
1

我有問題來解決這個問題。我必須重寫下面的語法,使其與LL(1)解析模糊語法與LL(1)解析

S→名詞|名詞和名詞| M,名詞和名詞

M→M,名詞|名詞

,我注意到的是,該語法是在生產帶有接頭連接器M遞歸的第一個問題,我修復它這樣

中號→名詞展示新品推薦網上

展示新品推薦網上→,名詞展示新品推薦網上

但後來我注意到帶有標題S的製作是模棱兩可的,但我不知道如何解決它,我試圖「分解」名詞,但我並不確定。

你能幫助我嗎?

謝謝你的回答。

+0

你的第一個重構是錯誤的 - 舊的M來自'名詞',新的M沒有。 – jch 2014-10-26 18:33:18

回答

1

您的左遞歸消除M不完整 - 您忘記了規則NewPro→ε

一旦你添加了這個問題,你就會留下S這個問題,這個問題並不含糊,但需要左派系數。自FIRST(M)⊆ FIRST(S),您需要先將M代入S:

S→noun |名詞和名詞|名詞展示新品推薦網上,名詞,和名詞

,然後就可以離開因子,簡單地,進

小號→名詞S '
S' →&小量; |和名詞| NewPro,名詞和名詞

現在您遇到此語法爲LL(4)而不是LL(1)的問題,因爲您需要4令牌前瞻來查找NewPro s序列的末尾。這是一個很難處理的問題,但它可以修復。首先,您需要將, noun,拖入NewPro中:

S'→ε; |和名詞| NewPro和名詞
NewPro→,名詞,| ,名詞展示新品推薦網上

然後左鍵因素展示新品推薦網上:

展示新品推薦網上→,名詞展示新品推薦網上 '
展示新品推薦網上' →,| NewPro

然後替換成NewPro':

NewPro'→,| | ,名詞展示新品推薦網上 '

和左因子太:

展示新品推薦網上' →,展示新品推薦網上 '' 展示新品推薦網上 '' →&小量; |名詞展示新品推薦網上 '

得到最終語法:

小號→名詞S'
S」→&小量; |和名詞| NewPro和名詞
NewPro→,名詞NewPro'
NewPro'→,NewPro''
NewPro→'ε |名詞展示新品推薦網上「

哪個是LL(1)和可直接使用或通過置換展示新品推薦網上回進入S簡化有點」和重命名的規則擺脫「-suffixes的:

小號→名詞甲
A→ε; |和名詞| ,名詞B和名詞
B→,C
C→ε |名詞B