
Am 15.03.2017 um 17:15 schrieb Mario Blažević:
On 2017-03-15 10:20 AM, Christopher Done wrote:
I'm not sure that anyone's using it. I originally found it on John Meacham's web site and offered to push it to Hackage. It hasn't been touched since. I once decided to sit down and modernize it, but realized I don't actually understand any of the laziness tricks in it.
I'm comfortable with laziness tricks, somewhat less so with "numerous unsafe optimization hacks".
Anybody's welcome to pick it up and take it to the cleaners!
Ok, I'll take it. My GitHub account is blamario. I don't suppose John Meacham would be interested?
I am glad my remark didn't scare you off, in retrospect my wording was perhaps a bit strong. Yes, John did a lot to make things as lazy as possible to avoid excessive memory consumption (cool to say that, isn't it). There is also some ugly type casting (unsafeCoerce) going on, since the parser keeps the alternatives in an array (remember that this is a packrat parser). Unfortunately I can't spare the time to work on this ATM. But I would be glad if you would revive the project. PEGs offer some unique advantages for day-to-day parsing tasks, where you can't be bothered to write a separate lexer or mess around with 'try' until your harmless looking grammar actually accepts the source language. A fair portion of these can nowadays be handled nicely with regex-applicative (many file formats are actually regular) but now and again there is one where you need the power of a CFG. Cheers Ben