2008-11-29 78 views
7

我需要在Java中快速構建一個非常簡化的html-like標記語言版本的解析器。在python中,我會使用pyparsing庫來做到這一點。 Java有沒有類似的東西?請不要暗示圖書館已經在那裏進行HTML解析,我的應用程序是一個學校作業,它將演示如何使用訪問者模式來漫步對象樹和序列化文本,所以我在這裏沒有用現實世界的術語來思考。基本上我需要的是標籤,屬性和文本節點。是否有類似於Java中的pyparsing的庫?

回答

7

另一個好解析器發生器是ANTLR ,那可能就是你要找的東西。

3

可能會過度使用,但javacc是一款出色的工業級解析器生成器。我多次使用過這個程序/庫,它的可靠性和值得學習,特別是如果你要使用語言和編譯器。下面是程序的從網站上面列出的描述:

的Java編譯器編譯[TM](JavaCC的[TM])可以使用Java(TM)應用最流行的解析器生成。解析器生成器是一種讀取語法規範並將其轉換爲可識別語法匹配的Java程序的工具。除了解析器發電機本身,JavaCC的提供與解析器的生成其它的標準功能,如樹建築(通過附帶的JavaCC一個名爲JJTree的工具),行動,調試等

+0

JavaCC非常棒。另請參閱Tom Copeland(Centennial Books)的書 – 2012-02-22 18:01:50

3

Java中的快速搜索解析器發電機產生JParsec。我從來沒有使用過它 - 但它的靈感來自於一個Haskell庫,所以顧名思義它一定是好的:-)

+0

看起來非常有趣,從代碼生成器出發......感謝您的參考。 – PhiLho 2008-11-29 19:05:19

2

我喜歡JParsec(我剛剛發現由於託斯滕),因爲它不會生成代碼.. .--)也許效率較低,但對於小任務來說足夠了。
我找到一個相似的庫,JTopas

有解析器(發電機與否)在Java Source一個良好的名單。

相關問題