@@ -226,7 +226,10 @@ parseBreak (PRD.Parser pstep initial extract) stream@(Stream step state) = do
226 PR.Done n _ -> do
226 PR.Done n _ -> do
227 error $ "parseBreak: parser bug, go1: Done n = " ++ show n
227 error $ "parseBreak: parser bug, go1: Done n = " ++ show n
228 PR.Error err ->
228 PR.Error err ->
229− return (Left (ParseError err), Stream step s)
230+ ( Left (ParseError err)
231+ , Nesting.append (fromPure x) (Stream step s)
231 gobuf !_ s buf (List []) !pst = go SPEC s buf pst
234 gobuf !_ s buf (List []) !pst = go SPEC s buf pst
232 gobuf !_ s buf (List (x:xs)) !pst = do
235 gobuf !_ s buf (List (x:xs)) !pst = do
@@ -251,7 +254,11 @@ parseBreak (PRD.Parser pstep initial extract) stream@(Stream step state) = do
251 let src0 = Prelude.take n (x:getList buf)
254 let src0 = Prelude.take n (x:getList buf)
252 src = Prelude.reverse src0
255 src = Prelude.reverse src0
253 return (Right b, Nesting.append (fromList src) (Stream step s))
256 return (Right b, Nesting.append (fromList src) (Stream step s))
254− PR.Error err -> return (Left (ParseError err), Stream step s)
259+ ( Left (ParseError err)
260+ , Nesting.append (fromList (x:xs)) (Stream step s)
256 -- This is simplified gobuf
263 -- This is simplified gobuf
257 goExtract !_ buf (List []) !pst = goStop buf pst
264 goExtract !_ buf (List []) !pst = goStop buf pst
@@ -298,7 +305,8 @@ parseBreak (PRD.Parser pstep initial extract) stream@(Stream step state) = do
298 let src0 = Prelude.take n (getList buf)
305 let src0 = Prelude.take n (getList buf)
299 src = Prelude.reverse src0
306 src = Prelude.reverse src0
300 return (Right b, fromList src)
307 return (Right b, fromList src)
301− PR.Error err -> return (Left (ParseError err), fromList (getList buf))
309+ return (Left (ParseError err), StreamD.nil)
303------------------------------------------------------------------------------
311------------------------------------------------------------------------------
304-- Specialized Folds
312-- Specialized Folds