I’ve just finished the first version of “Parsem”, a Parsec-like parser combinator library for Crystal. I wrote it mostly for fun, as a nice excuse to learn and explore Crystal, and perhaps to build some other stuff with in the future.
I personally love parser combinators for how little code is actually required to write new parsers for all sorts of things. Do note, however, that the resultant parsers are not necessarily performant for very large input sizes.
Along the way, I wrote a couple interesting (to me) macros, like curry and infer. It’s pretty neat that Crystal makes these sorts of code transformations possible.
It’s available here. Feedback, suggestions, etc. are welcome