2011-10-30 162 views
0

我正在修改明天的考試,並且會在前一年進行考試。將語法轉換爲LL1語法

在測試中是語法。

Expression -> Foo "+" Bar "end" 
Foo -> [a-z0-9]+ | Expression 
Bar -> Expression Foo | a*b*c+ 

我曾嘗試和花了幾個小時研究如何做到這一點,但不能弄明白。

我已經看過用epsilion替換東西,但沒有自信。

我認爲我需要創建一個Foo'和一個Bar',然後在ε規則中添加,但我不確定。

可能有人請告訴我(簡單)_how將其更改爲LL(1)語法能力

在此先感謝

回答

1

我記得LL-1語法向前看在1個符號。您的目標是消除模糊和左遞歸。所有你需要的 - 使用左分解。先看看this