2010-01-25 123 views
19

I am writing a GLR parser generator並希望在互聯網和死樹種類(針對那些不熟悉怪胎說話的人的書籍)中關於此算法的資源提供一些建議。GLR解析算法資源

我知道Bison可以生成GLR解析器,並且考慮到它在GPL下,我可以檢查它的代碼,但是如果對算法有完整的描述,那將會很好。

那麼,有沒有人知道我可以利用的任何優質資源?謝謝。

+0

非常酷的項目(Terse,而不是解析器生成器),我會隨着它的興趣跟進它的進度。 – 2010-03-09 13:49:24

+0

不幸的是,我被許多事情分心了,所以這個項目已經停滯了,但是......更多的工作將在很快就會開始! – ljs 2010-11-04 17:54:29

回答

10

一些好東西我在網上以前也遇到過:

四月和用於更詳細地:

我知道第三個開源的GLR解析器:DParser

+0

非常棒!謝謝。 – ljs 2010-01-26 09:47:08

2

從我所知道的,它的功能與LALR解析器相同 - 除非遇到歧義。

當它,它基本上分爲對應於在該點的可能的選擇分離解析,並在串聯的與他們繼續 - 當解析失敗(由於遇到非法元件),它被簡單地丟棄,因爲它在早些時候的含糊不清之處肯定是錯誤的猜測。

最後,除了一個解析應該已經死了 - 倖存的一個是對這些模糊點的「正確」解析。

+0

真的那麼簡單嗎?或者是否存在特定的替代GLR算法? – ljs 2010-01-25 00:32:38

+0

這基本上來自我閱讀Bison手冊(http://www.gnu.org/software/bison/manual/bison.html#GLR-Parsers) - 它實際上很清楚GLR解析器的工作原理。 – 2010-01-25 00:35:10

+0

您可能會發現它比這更復雜一點。 – 2010-01-27 05:29:06

3

我所見過的,有圖片說明的算法的每個步驟的最好的說明,包含在這本書:

http://books.google.ca/books?id=05xA_d5dSwAC&lpg=PA381&dq=generalized%20deterministic%20parsers&pg=PA381#v=onepage&q=generalized%20deterministic%20parsers&f=false

對於僞代碼,去源:廣義LR分析富田,第70頁左右。 Farshi的論文包含一個簡潔的描述。

http://books.google.ca/books?id=PvZiZiVqwHcC&lpg=PP1&dq=generalized%20lr%20parsing&pg=PA70#v=onepage&q=&f=false

這是我嘗試了qb.js技術(qbasic in javascript)之一。

5

Adrian Johnstone在高級版本的GLR算法上發表了大量的工作。他的publications website可能會是一個有趣的資源。