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
Waxeye currently supports these programming languages:
- C
- Java
- Ruby
- Scheme
In the future, support will be added for these and other programming languages:
- Python
- Javascript
- CommonLisp
Future Development
- Left-Recursive Grammars with Left-Corner Parsing
- 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. 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.