congo-parser-generator
congo-parser-generator copied to clipboard
The CongoCC Parser Generator, the Next Generation of JavaCC 21, which in turn was the next generation of JavaCC
The Congo Parser Generator
The Congo Parser Generator is a Recursive Descent Parser Generator that generates code in Java, Python, and C#.
Here are some highlights:
Grammars
Congo contains complete, up-to-date grammars for:
Any of these grammars may be freely used in your own projects, though it would be nice if you acknowledge the use and provide a link to this project. The above-linked grammars also can be studied as examples. (Best would be to start with the JSON grammar, move on to Lua, then Python, Java, and C# in order of complexity.)
Cutting Edge Features
CongoCC has some features that, to the best of our knowledge are not in most (or possibly any) competing tools, such as:
- Contextual Predicates
- Context-sensitive tokenization
- Assertions
- Clean, streamlined up-to-here syntax
- Support for the full 32-bit Unicode standard
- Code Injection into generated classes
- Informative Stack Traces that include location information relative to the Grammar
- A Preprocessor allowing one to turn on/off parts of the grammar based on various conditions
- An INCLUDE directive to allow large grammar files to be broken into multiple physical files
CongoCC also supports fault-tolerant parsing that is admittedly in an unpolished, experimental stage, but basically usable.
If you are interested in this project, either as a user or developer, by all means sign up on our Discussion Forum and post any questions or suggestions there.
See our QuickStart Guide.