
On Feb 1, 2008 5:06 PM, Adam Langley
I think one could get around this by having a couple of states, the latter being a list of all the additional ByteStrings that the parser has received. Then, after having prospectively failed a certain parse path, the failure must include the list of additional data, which can be merged into the new state for the next prospective path. This failure value must be internal and, at the top level, translated into a more user-friendly failure.
That was actually bit tougher than I thought, but I got something working: http://www.imperialviolet.org/Incremental.hs Half the bottom functions are still commented out because I got bored, but the plus operator works (I think). I managed a couple of simple tests that I threw at it. I'm pretty sure the cutContinuation is a terrible hack but, apart from having continuations in both directions, it was the best that I could come up with. However, I obvious don't understand Parsec because I made the try operator redundant, and I'm pretty sure that shouldn't have happened. AGL -- Adam Langley agl@imperialviolet.org http://www.imperialviolet.org 650-283-9641