JavaCC
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
- ↑ https://github.com/javacc/javacc/releases/tag/7.0.5
- ↑ 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.
- ↑ Apache Lucene package documentation. Retrieved September 9, 2013 .
- ^ The Apache Velocity project - Required Tools. Retrieved September 9, 2013 .
- ↑ Customizing PMD - How to write a PMD rule. Retrieved September 9, 2013 .