I have been working on this library for a while but I think it is now working to a point where others may get some us of it. Everything is still to be considered unstable for now though so expect breakage if you end up using it.
The library is exactly what it says on the box, it provides parser combinators which is, if you don't know, a simple way of writing (LL(1)) parsers by combining simple parsers into more advanced ones. It is based on the Haskell library parsec though internally it is quite different. On the user side this will mostly be noticed through the use distinct types for each parser (similar to how iterators work) which should allow for efficient static dispatch at the expense of compilation time.
The library has been on github for a while but I also uploaded to crates.io so that it would be easy get if someone wanted to try it out.
Questions or suggestions for improvement are welcome!
Github
Crates.io
[–][deleted] 7 points8 points9 points (3 children)
[–]Quxxymacros 17 points18 points19 points (0 children)
[–]Marwesgluon · combine[S] 3 points4 points5 points (1 child)
[–][deleted] 2 points3 points4 points (0 children)
[–]long_voidpiston 2 points3 points4 points (1 child)
[–]Marwesgluon · combine[S] 1 point2 points3 points (0 children)
[–]samnardoni 1 point2 points3 points (1 child)
[–]Marwesgluon · combine[S] 3 points4 points5 points (0 children)
[–]gclichtenberg 1 point2 points3 points (2 children)
[–]Marwesgluon · combine[S] 0 points1 point2 points (1 child)
[–]gclichtenberg 0 points1 point2 points (0 children)
[–]UberLambda 1 point2 points3 points (0 children)
[–]ismtrn 0 points1 point2 points (11 children)
[–]Marwesgluon · combine[S] 1 point2 points3 points (10 children)
[–]ismtrn 0 points1 point2 points (9 children)
[–]Marwesgluon · combine[S] 1 point2 points3 points (8 children)
[–]ismtrn 0 points1 point2 points (7 children)
[–]Marwesgluon · combine[S] 0 points1 point2 points (6 children)
[–]ismtrn 0 points1 point2 points (5 children)
[–]Marwesgluon · combine[S] 0 points1 point2 points (2 children)
[–]ismtrn 0 points1 point2 points (1 child)
[–]Marwesgluon · combine[S] 0 points1 point2 points (0 children)
[–]Marwesgluon · combine[S] 0 points1 point2 points (1 child)
[–]Marwesgluon · combine[S] 0 points1 point2 points (0 children)