JavaCC

from Wikipedia, the free encyclopedia
JavaCC
Basic data

Current  version 7.0.5
(October 20, 2019)
operating system Operating systems with Java runtime environment
programming language Java
category Parser generator
License BSD license
github.com/javacc/javacc

JavaCC ( Java C ompiler C ompiler ) is a Lexer- and parser , which in Java is implemented and as an output Java and ++ C generated source code. JavaCC is open source and published under the terms of the BSD license .

JavaCC works similarly to the well-known program Yacc , but uses a different method to parse the data: JavaCC generates an LL (k) parser , while Yacc generates a LALR (1) parser . The grammar has to be structured a little differently than it would be with Yacc.

Programs and libraries that use JavaCC internally

  • The open source search engine framework Lucene uses JavaCC to generate the lexer and the query parser.
  • The open source template engine Velocity uses JavaCC for its parser functions.
  • The PMD tool used for static code analysis of source texts uses JavaCC internally to process the user-defined rules.
  • The Java API of the Cyc ontology project uses JavaCC for its parser functions.

See also

  • JFlex (scanner generator for Java written in Java)
  • SableCC (Compiler-Compiler for LALR (1) -Parser in Java)
  • ANTLR (Compiler-Compiler for LL (*) - Parser in different target languages)
  • Coco / R (Compiler-Compiler for LL (k) -Parser in different target languages)

literature

  • Tom Copeland: Generating Parsers with JavaCC . 2nd Edition. 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 . 1st edition. John Wiley & Sons, 2012, ISBN 978-0-470-94959-7 .

Individual evidence

  1. https://github.com/javacc/javacc/releases/tag/7.0.5
  2. JavaCC Announce Mailinglist on Java.net. (No longer available online.) Archived from the original on April 11, 2016 ; accessed on September 9, 2013 . Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. @1@ 2Template: Webachiv / IABot / java.net
  3. Apache Lucene package documentation. Retrieved September 9, 2013 .
  4. ^ The Apache Velocity project - Required Tools. Retrieved September 9, 2013 .
  5. Customizing PMD - How to write a PMD rule. Retrieved September 9, 2013 .