Java Compiler Compiler (JavaCC) - The Java Parser Generator

Java Compiler Compiler (JavaCC) is the most popular parser generator for use with Java 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.

Our latest release of JavaCC is Version 2.0. This version was released jointly by Metamata and Sun Microsystems on October 26, 2000.

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.1 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 Java. We say this as engineers who have personally experienced the benefits of writing applications in Java.

Third party contributions:

A repository of JavaCC grammars is being maintained by Dongwon Lee at UCLA. We urge you to contribute your grammars to this repository or to Metamata for the benefit of others.

We are also collecting URLs to software tools and other interesting work based on (or related to) JavaCC. To browse or contribute to this list, please click here.

Some quotes from our users:

John Dumas (jdumas@zeh.com):

I just wanted to write you all to say "thank you". What I wanted to do is build a parser to recognize a home-grown language that allows us to lay out java GUIs automatically. I wrote the spec for the language from a "wish list" perspective and expected that processing the file and generating a tree to use to build the GUI would be quite complex. After only about a week of experimenting with JavaCC, I took on the task of building my parser and I completed the entire thing in one day. What an amazing tool!

I particularly like the way you've done the productions, just like real java methods where you can control the return type and parameters. Helps avoid all the nasty global(ish) data that lex/yacc tend to thrust upon you.

Erik Meade: JJTree rocks. It's usefulness is limited only by your imagination.

Paul Fisher: JavaCC is the coolest compiler-compiler that I've seen in years. It's off to a great start and should be seriously considered by any developer that's in need of this type of tool.

Ward Cunningham: Frankly, I am astounded that the developers at SunTest find the time and patience to routinely deliver such thoughtful replies to both experts and compiler newbies.

For more user comments on the JavaCC tools, please visit our testimonials page.


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.

Customer Support: What you can expect in terms of customer support - both formal and informal. You can also purchase formal customer support here.

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

User Comments: Hear what users have to say about Java Compiler Compiler. This is our favorite page! Please help us keep this page really cool and uptodate with your contributions.

Legal stuff: A general overview on the licensing rules, etc.


Copyright Metamata, Inc. 1997-2000. All Rights Reserved.