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.