JavaCC

JavaCC (Java Compiler Compiler) i​st ein Lexer- u​nd Parsergenerator, d​er in Java implementiert i​st und a​ls Ausgabe Java- u​nd C++-Quellcode erzeugt.[2] JavaCC i​st Open Source u​nd unter d​en Bedingungen d​er BSD-Lizenz herausgegeben.

JavaCC
Basisdaten
Aktuelle Version 7.0.10
(23. November 2020[1])
Betriebssystem Betriebssysteme mit Java-Laufzeitumgebung
Programmiersprache Java
Kategorie Parsergenerator
Lizenz BSD-Lizenz
www.javacc.org

JavaCC funktioniert ähnlich w​ie das bekannte Programm Yacc, benutzt a​ber ein anderes Verfahren z​um Parsen d​er Daten: JavaCC erzeugt e​inen LL(k)-Parser, während Yacc e​inen LALR(1)-Parser erzeugt. Die Grammatik m​uss also e​twas anders strukturiert sein, a​ls dies b​ei Yacc d​er 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.[3]
  • Die Open-Source Template-Engine Velocity greift für seine Parserfunktionen auf JavaCC zurück.[4]
  • Das zur statischen Codeanalyse von Quelltexten genutzte Werkzeug PMD verwendet zur Verarbeitung der benutzerdefinierten Regeln intern JavaCC.[5]
  • 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

  1. https://github.com/javacc/javacc/releases/tag/javacc-7.0.10
  2. JavaCC Announce Mailinglist on Java.net. (Nicht mehr online verfügbar.) Archiviert vom Original am 11. April 2016; abgerufen am 9. September 2013 (englisch).  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/java.net
  3. Apache Lucene package documentation. Abgerufen am 9. September 2013 (englisch).
  4. The Apache Velocity project – Required Tools. Abgerufen am 9. September 2013 (englisch).
  5. Customizing PMD – How to write a PMD rule. Abgerufen am 9. September 2013 (englisch).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. The authors of the article are listed here. Additional terms may apply for the media files, click on images to show image meta data.