Java Compiler Compiler [tm] (JavaCC [tm]) - The Java Parser Generator

Java Compiler Compiler [tm] (JavaCC [tm]) is the most popular parser generator for use with Java [tm] applications. A parser generator is a tool that reads a grammar specification and converts it to a Java program that can recognize matches to the grammar. In addition to the parser generator itself, JavaCC provides other standard capabilities related to parser generation such as tree building (via a tool called JJTree included with JavaCC), actions, debugging, etc.

We've had hundreds of thousands of downloads and estimate serious users in the many thousands (and maybe even tens of thousands). Our newsgroup and our mailing list together have a few thousand participants.

JavaCC works with any Java VM version 1.2 or greater. It has been certified to be 100% Pure Java. JavaCC has been tested on countless different platforms without any special porting requirements. Given that we have seen JavaCC run on only around 5 or 6 platforms, we think this is a great testimonial to the "Write Once Run Anywhere" aspect of the Java programming language. We say this as engineers who have personally experienced the benefits of writing Java applications.

Getting the Software

Download the latest release of JavaCC.

Note: You need to enable cookies for the download link to work.

Third party contributions

An excellent FAQ is maintained by Theo Norvell at Memorial University of Newfoundland.

A repository of JavaCC grammars is being maintained on the JavaCC home page. We urge you to contribute your grammars to this repository or to the JavaCC authors for the benefit of others.

Feature Highlights: A short description of the features of JavaCC.

Installation and Getting Started: This page contains a bunch of tips that should aid you through the installation process.

Documentation: The complete documentation for JavaCC.

Lexer writing tips: Tips for writing good JavaCC lexical analyzer specs. This can also help you if you are getting 'code size too big' error message from javac when you compile the generated token manager.

Getting Support and Keeping In Touch: Here's how you can contact us and keep in touch with what's happening.