Zum Inhalt springen

JavaCC

aus Wikipedia, der freien Enzyklopädie
JavaCC

[[Datei:Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)|150px]]
Basisdaten

Maintainer Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
Entwickler Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
Erscheinungsjahr Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
Aktuelle Version Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
(Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value))
Aktuelle Vorabversion Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)
(Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value))
Betriebssystem Betriebssysteme mit Java-Laufzeitumgebung
Programmier­sprache Java
Kategorie Parsergenerator
Lizenz BSD-Lizenz
www.javacc.org

JavaCC (Java Compiler Compiler) ist ein Lexer- und Parsergenerator, der in Java implementiert ist und als Ausgabe Java- und C++-Quellcode erzeugt.<ref>JavaCC Announce Mailinglist on Java.net. Archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am 11. April 2016; abgerufen am 9. September 2013 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> JavaCC ist Open Source und unter den Bedingungen der BSD-Lizenz herausgegeben.

JavaCC funktioniert ähnlich wie das bekannte Programm Yacc, benutzt aber ein anderes Verfahren zum Parsen der Daten: JavaCC erzeugt einen LL(k)-Parser, während Yacc einen LALR(1)-Parser erzeugt. Die Grammatik muss also etwas anders strukturiert sein, als dies bei Yacc der Fall wäre.

Programme und Bibliotheken, die intern JavaCC verwenden

  • Das Open-Source Suchmaschinen-Framework Lucene nutzt JavaCC zur Generierung des Lexers und des Query-Parsers.<ref>Apache Lucene package documentation. Abgerufen am 9. September 2013 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
  • Die Open-Source Template-Engine Velocity greift für seine Parserfunktionen auf JavaCC zurück.<ref>The Apache Velocity project – Required Tools. Abgerufen am 9. September 2013 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
  • Das zur statischen Codeanalyse von Quelltexten genutzte Werkzeug PMD verwendet zur Verarbeitung der benutzerdefinierten Regeln intern JavaCC.<ref>Customizing PMD – How to write a PMD rule. Abgerufen am 9. September 2013 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>
  • Das Java-API des Ontologie-Projekts Cyc greift für seine Parserfunktionen auf JavaCC zurück.

Siehe auch

  • JFlex (in Java geschriebener Scanner-Generator für Java)
  • SableCC (Compiler-Compiler für LALR(1)-Parser in Java)
  • ANTLR (Compiler-Compiler für LL(*)-Parser in verschiedenen Zielsprachen)
  • Coco/R (Compiler-Compiler für LL(k)-Parser in verschiedenen Zielsprachen)

Literatur

  • Tom Copeland: Generating Parsers with JavaCC. 2. Auflage. Centennial Books, Alexandria, 2009, ISBN 978-0-9762214-3-2.
  • Anthony J. Dos Reis, Laura L. Dos Reis: Compiler Construction Using Java, JavaCC, and Yacc. 1. Auflage. John Wiley & Sons, 2012, ISBN 978-0-470-94959-7.

Einzelnachweise

<references />