Pliant
Implementation of a modified Earley parser in C# inspired by the Marpa Parser project.
Description
Pliant is a table driven parser that implements the Earley algorithm. Two optimizations are added to handle issues with the original Earley implementation:
- Optimization from Joop Leo to efficiently handle right recursions.
- Bug fix from Aycock and Horspool to handle nullable predictions
References
- berkeley earley cs164
- washington edu ling571
- unt cse earley
- wikipedia
- optimizing right recursion
- mapra parser
- joop leo - optimizing right recursions
- parsing techniques - a practical guide
- practical earley parsing
- detailed description of leo optimizations and internals of marpa
- theory of Marpa Algorithm
- parse tree forest creation
- cs theory stackexchange, leo optimization parse tree creation
- insights on lexer creation
- incremental reparsing