Lip
Lip provides powerful parser combinators for creating reusable and flexible parsers.
Why Lip?
- Easy to understand - uses intuitive combinators like keep and skip
- Compact - takes less than an hour to learn this library fully
- Flexible and composable parser combinators
- Efficient - minimal backtracking
- Built-in support for precise, located error messages
- Keep track of extra states like line number and instruction index
- Extensible - create your own combinators if needed
// Parse an (x, y) position pair
use *;
let position = succeed!
.keep
.skip
.keep
.run; // run this parser on string "2,3" without extra states
// when parsing finished, position == (2, 3)
Tutorial
Reading the parser combinator by Bodil is an excellent way to know how parser combinators work.
License
MIT
Credits
Based on Bodil's Parser Combinator Tutorial and Evan's elm/paser.