2008-11-29 5 views
7

Potrzebuję szybko zbudować analizator składni dla bardzo uproszczonej wersji języka znaczników html w Javie. W pythonie użyłbym do tego biblioteki pyparsing. Czy jest coś podobnego w Javie? Proszę nie sugerować już bibliotek do parsowania html, moja aplikacja to zadanie szkolne, które zademonstruje chodzenie po drzewie obiektów i serializację tekstu za pomocą wzorca odwiedzającego, więc nie myślę tu w kategoriach realnego świata. Zasadniczo wszystko, czego potrzebuję, to tagi, atrybuty i węzły tekstowe.Czy istnieje biblioteka podobna do pyparsing w Javie?

Odpowiedz

7

Kolejny dobry parser generator jest ANTLR , to może być to, czego szukasz.

3

Może być przesada, ale javacc to doskonały generator parserów o wytrzymałości przemysłowej. Używałem tego programu/biblioteki kilka razy, jest to niezawodny i warty nauki, szczególnie jeśli masz zamiar pracować z językami i kompilatorami. Poniżej znajduje się opis programu ze strony internetowej wymienione powyżej:

Java Compiler Compiler [tm] (javacc [tm]) jest najpopularniejszym parser generator do użycia z [tm] aplikacji Java. Generator analizatora składni jest narzędziem, które odczytuje specyfikację gramatyki i konwertuje ją do programu Java, który może rozpoznawać dopasowania do gramatyki. Oprócz samego generatora parsera, javacc zapewnia inne funkcje standardowe związane z pokolenia parsera takich jak budowa drzewa (poprzez narzędzie o nazwie JJTree dołączonego javacc), działania, debugowanie, itp

+0

JavaCC jest NIESAMOWITY. Sprawdź także książkę Toma Copelanda (Centennial Books) –

3

Szybkie wyszukiwanie generatorów analizatora składni w języku Java daje JParsec. Nigdy go nie używałem - ale jest inspirowany biblioteką Haskella, więc z definicji musi być dobra :-)

+0

Wygląda bardzo interesująco, odbiegając od generatorów kodu ... Dzięki za referencje. – PhiLho

2

Lubię JParsec (który właśnie odkryłem dzięki Torsten), ponieważ nie generuje kodu .. . :-) Być może mniej wydajne, ale wystarczające do małych zadań.
Znalazłem podobną bibliotekę, JTopas.

Istnieje dobra lista analizatorów składni (generatorów lub nie) pod numerem Java Source.