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

Main JavaCC home page at its java.net home

New!!! JavaCC can now generate C/C++ code! Please try it out from head of the main source code repository: https://svn.java.net/svn/javacc~svn or svn+ssh://<your java.net userid>@svn.java.net/javacc~svn. Just check out the source code and run ant to build it. We will soon release a beta version.

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 comp.compilers.tools.javacc 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 JavaCC 6.0 (older versions are here).

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.

Source Code: Here's the Subversion repository containing the JavaCC source code.