On Sat, Mar 8, 2008 at 10:11 PM, Adam Langley <[EMAIL PROTECTED]> wrote: > On Sat, Mar 8, 2008 at 12:56 AM, Johan Tibell <[EMAIL PROTECTED]> wrote: > > The problem -- maybe there are others too -- is that when a parser such as > > > > many (byte 65) > > > > is run it will always return a 'Partial' result waiting for more input > > even though the enumerator is exhausted. In other words, there's no > > way to detect end of input. > > It appears that you need some way to distinguish the end of input > from, "that's all I have for now". You could use an empty Bytestring > in S if you were careful that you maintained that, in normal > processing, such a state doesn't arise. Otherwise, have a Maybe in > your state and set it to Nothing when the input is exhausted. Then > have combinators, like many, handle the EOF case sensibly.
I changed the type of Partial to Maybe ByteString -> Result a so that the client can specify EOF. -- Johan _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe