2010-06-03 36 views
1

我想編寫一個程序,將語法作爲輸入並將其更改爲LL1。
我的問題是轉換爲LL1我沒有任何算法轉換。我通過一個簡單的文本分析器從一些輸入文本中獲得語法,但我如何將它更改爲LL1?有什麼算法可以清楚地實現。將上下文免費語法轉換爲LL1語法

+0

聽起來像作業給我。 – 2010-06-03 06:38:02

+0

沒有一種確定性的方式來做到這一點,所以......將無法編寫程序......您可以使用一些技術作爲因式分解或消除左遞歸......但是也許您不會達到所需的LL1語法(甚至如果語言可以表示爲LL1語法) – Qsebas 2013-12-09 19:40:09

回答

1

由Aho,Sethi和Ullman編寫的龍書:編譯器,原理,技術和工具有一章(標題爲語法分析),它解釋了消除左遞歸的過程,以及另一個左過程因子的上下文無關語法。

生成的語法適用於LL解析。

我建議你閱讀本書中的那一章,看看你是否可以將它轉換成代碼。