▲ | furyofantares 9 days ago | ||||||||||||||||
These are great. I accidentally invented parser combinators for a project once. I was quite fond of the approach but it ended up being pretty nearly unusable for anyone else on the team. This was problematic because the project was such that we were always adding new things to be parsed. The whole reason I took the approach was that I wanted people to be able to freely add parsers as new requirements came in. It being my first shot at it, it was for sure not as usable as it could be. But looking at your stuff, which is delightful, I am filled with doubt that my goal was even possible. Your stuff looks about as clean as possible, and yet seems likely to be almost as impenetrable to someone not versed in parsing. That said, I am gonna look for a chance to use this in appropriate side projects. | |||||||||||||||||
▲ | miningape 9 days ago | parent | next [-] | ||||||||||||||||
Yeah parsers can be tricky "culturally" - as you've found there are many devs who haven't written a recursive descent parser and therefore they lack any meaningful context to understand what's happening under the hood. It's a similar scenario to if you made your own RegEx and none of the devs on your team know's what it is. It just takes too long to teach them that on the job since there's very few quality resources you can point them towards - so you're stuck teaching everything. On the other hand, if you have a team full of experienced PL developers doing this could significantly improve their productivity. | |||||||||||||||||
▲ | egonschiele 9 days ago | parent | prev [-] | ||||||||||||||||
The idea of functions returning functions makes a lot of people's heads spin! I've struggled to get people using this library too, but I use it in personal work and it is an absolute joy. One of my favorite things I've made. | |||||||||||||||||
|