Domanda

Devo creare rapidamente un parser per una versione molto semplificata di un linguaggio di markup simile a html in Java. In Python, userei la libreria pyparsing per fare questo. C'è qualcosa di simile per Java? Per favore, non suggerire librerie già disponibili per l'analisi html, la mia applicazione è un compito scolastico che dimostrerà di camminare su un albero di oggetti e serializzare il testo usando il modello visitatore, quindi non sto pensando in termini reali qui. Fondamentalmente tutto ciò di cui ho bisogno qui sono tag, attributi e nodi di testo.

È stato utile?

Soluzione

Un altro buon generatore di parser è ANTLR , potrebbe essere quello che stai cercando .

Altri suggerimenti

Potrebbe essere eccessivo per il tuo utilizzo, ma javacc è un eccellente generatore di parser di livello industriale. Ho usato questo programma / libreria diverse volte, è affidabile e vale la pena imparare, in particolare se hai intenzione di lavorare con lingue e compilatori. Ecco la descrizione del programma dal sito Web sopra elencato:

  

Java Compiler Compiler [tm] (JavaCC [tm]) è il generatore di parser più popolare per l'uso con le applicazioni Java [tm]. Un generatore di parser è uno strumento che legge una specifica grammaticale e la converte in un programma Java in grado di riconoscere corrispondenze alla grammatica. Oltre allo stesso generatore di parser, JavaCC fornisce altre funzionalità standard relative alla generazione di parser come la creazione di alberi (tramite uno strumento chiamato JJTree incluso in JavaCC), azioni, debug, ecc.

Una rapida ricerca di generatori di parser in Java produce JParsec . Non l'ho mai usato - ma è ispirato a una libreria Haskell, quindi per definizione deve essere buono :-)

Mi piace JParsec (che ho appena scoperto grazie a Torsten) perché non genera codice ... :-) Forse meno efficiente, ma sufficiente per piccoli compiti.
Ho trovato una libreria simile, JTopas .

Esiste un buon elenco di parser (generatori o meno) in Java Source .

Esistono molte opzioni per la gestione delle stringhe in Java. Forse le classi di base java.util.Scanner e java.util.StringTokenizer sono utili per te?

Un'altra buona scelta è forse la libreria org.apache.commons.lang.text . http: //commons.apache. org / lang / apidocs / org / apache / comuni / lang / text / package-summary.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top