Waxeye Parser Generator
Waxeye makes language development easy and fun. With Waxeye, you can rapidly explore ideas for the syntax of your language.
Whether you are creating a full programming language, a domain-specific language or just a simple data format, Waxeye will get you there faster.
Here are some of the features that make Waxeye great!
Scanner-less Parsing
Thanks to Waxeye’s scanner-less parsing algorithm, languages are created in a very natural, easy to learn way.
Language Independent Grammars
Waxeye’s grammar language is designed to maximize grammar reuse and make maintaining a language project easy, no matter which programming language you are using.
Modular, Composable Grammars
Not only can you reuse individual grammars but, you can create entirely new languages by composing existing grammars.
Grammar Testing
One of the best ways to create a new language is to develop it in a “bottom-up” style. With Waxeye’s grammar testing, you can ensure that each component of your language is parsed as you expect.
Automatic AST Generation
To save you time and effort, Waxeye automatically creates an Abstract Syntax Tree based on the structure of your grammar.
Runtime Targets
These are the currently supported programming languages:
- Java
- Ruby
- Scheme
Some programming languages I plan to support soon:
- C
- Python
Future Development
- Left-Recursive Grammars with Left-Corner Parsing
- Better Error Reporting
- Context-sensitive Parsing
- Full Unicode Support
- Error Recovery
- Ambiguity Checking
- Infinite Streams
- Incremental Parsing
- Grammar Editor
Requirements
There are no external dependencies needed to run a pre-built version of Waxeye. Building from source requires MzScheme v372. A supported programming language is required to use the generated parsers.
License
Waxeye is free, open-source, software and is under the MIT/X11 license. This includes the core generator tool, the target language runtimes and all example grammars.