Frage
Ich arbeite an einem Compiler-Designprojekt in Java.Die lexikalische Analyse wird durchgeführt (mit jflex) und ich frage mich, welches Yacc-ähnliche Tool für die syntaktische Analyse am besten geeignet ist (am effizientesten, am einfachsten zu verwenden usw.) und warum.
Andere Tipps
In der Vergangenheit habe ich ANLTR für beide Lexer und Parser verwendet, und die JFlex Homepage sagt es mit ANTLR zusammenarbeiten können. Ich würde nicht sagen, dass ANTLR Online-Dokumentation, die ist groß. Ich landete in 'The Definitive ANTLR Referenz' investieren bis , die wesentlich dazu beigetragen.
GNU Bison hat eine Java-Schnittstelle,
http://www.gnu.org /software/bison/manual/html_node/Java-Bison-Interface.html
Sie können es Java-Code verwenden, gehen erzeugen.
Es gibt auch Jacc.
Jacc ist so nah wie möglich an Yacc, aber es ist in reinem Java implementiert und generiert einen Java-Parser.
Es lässt sich gut mit jFlex verbinden
Eine andere Möglichkeit wäre die GOLD Parser .
Im Gegensatz zu vielen der Alternativen erzeugt der GOLD-Parser die Parsing-Tabellen aus der Grammatik und legt sie in einer binären, nicht-ausführbaren Datei. Jede unterstützte Sprache hat dann einen Motor, der die binären Tabellen liest und analysiert die Quelldatei.
Ich habe die Java-Implementierung speziell nicht verwendet, habe aber den Delphi-Motor mit recht guten Ergebnissen verwendet.