Java Compiler Compiler (JavaCC) is the most popular parser generator for use with Java applications, and it allows generating C+= and C# parsers since version 8.
A parser generator is a tool that reads a grammar specification (in plain text) and converts it to a program (of some programming language) 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 and debugging.
All you need:
- to create a JavaCC grammar specification: a text editor at minimum, or a modern IDE,
- to generate the JavaCC parser: JavaCC itself and a Java Runtime Environment (JRE),
- to compile the generated parser: a compiler for the target programming language (currently Java, C++, C#),
- to run the compiled generated parser: the standard environment for running a such compiled programe (a JRE for Java...)
This README is just an index to the different documented sections, which are also presented in the companion JavaCC 8 web site.
Currently published releases:
Next releases to publish: 8.1.0 (Feb 2026) (Maven, GitHub) (C++, C#)
Currently published snapshots:
Currently published release:
See What is JavaCC.
Beginners can look at Starting using JavaCC.
If you read this README.md, you should be under the v8 repository.
See Versions for an explanation of differences between v8 and v7.
See Release notes.
See Building JavaCC if you want to hack or contribute to JavaCC.
See Support before submitting an issue.
This is an active open-source project. We are always open to people who want to use the system or contribute to it.
Contact us through the repository discussions area if you are looking for implementation tasks that fit your skills.
JavaCC is an open source project released under the BSD-3-Clause.
The JavaCC project was originally developed at Sun Microsystems Inc. by Sreeni Viswanadha and Sriram Sankar.