@@ -1337,28 +1337,31 @@ parseBreakChunks parser input = do
13371337 -- If we stop in an alternative, it will try calling the next
13381338 -- parser, the next parser may call initial returning Partial and
13391339 -- then immediately we have to call extract on it.
1340- ParserK. Partial 0 cont1 ->
1340+ ParserK. SPartial ( - 1 ) cont1 ->
13411341 go [] cont1 nil
1342- ParserK. Partial n cont1 -> do
1343- let n1 = negate n
1342+ ParserK. SPartial m cont1 -> do
1343+ let n = m + 1
1344+ n1 = negate n
13441345 assertM(n1 >= 0 && n1 <= sum (Prelude. map Array. length backBuf))
13451346 let (s1, backBuf1) = backTrack n1 backBuf nil
13461347 in go backBuf1 cont1 s1
1347- ParserK. Continue 0 cont1 ->
1348+ ParserK. SContinue ( - 1 ) cont1 ->
13481349 go backBuf cont1 nil
1349- ParserK. Continue n cont1 -> do
1350- let n1 = negate n
1350+ ParserK. SContinue m cont1 -> do
1351+ let n = m + 1
1352+ n1 = negate n
13511353 assertM(n1 >= 0 && n1 <= sum (Prelude. map Array. length backBuf))
13521354 let (s1, backBuf1) = backTrack n1 backBuf nil
13531355 in go backBuf1 cont1 s1
1354- ParserK. Done 0 b ->
1356+ ParserK. SDone ( - 1 ) b ->
13551357 return (Right b, nil)
1356- ParserK. Done n b -> do
1357- let n1 = negate n
1358+ ParserK. SDone m b -> do
1359+ let n = m + 1
1360+ n1 = negate n
13581361 assertM(n1 >= 0 && n1 <= sum (Prelude. map Array. length backBuf))
13591362 let (s1, _) = backTrack n1 backBuf nil
13601363 in return (Right b, s1)
1361- ParserK. Error _ err -> do
1364+ ParserK. SError _ err -> do
13621365 let (s1, _) = backTrack maxBound backBuf nil
13631366 return (Left (ParseError err), s1)
13641367
@@ -1370,7 +1373,8 @@ parseBreakChunks parser input = do
13701373 pRes <- parserk (ParserK. Chunk arr)
13711374 let len = Array. length arr
13721375 case pRes of
1373- ParserK. Partial n cont1 ->
1376+ ParserK. SPartial m cont1 -> do
1377+ let n = m + 1
13741378 case compare n len of
13751379 EQ -> go [] cont1 stream
13761380 LT -> do
@@ -1384,7 +1388,8 @@ parseBreakChunks parser input = do
13841388 let (s1, _) = backTrack n1 backBuf s
13851389 go [] cont1 s1
13861390 GT -> seekErr n len
1387- ParserK. Continue n cont1 ->
1391+ ParserK. SContinue m cont1 -> do
1392+ let n = m + 1
13881393 case compare n len of
13891394 EQ -> go (arr: backBuf) cont1 stream
13901395 LT -> do
@@ -1398,12 +1403,13 @@ parseBreakChunks parser input = do
13981403 let (s1, backBuf1) = backTrack n1 backBuf s
13991404 go backBuf1 cont1 s1
14001405 GT -> seekErr n len
1401- ParserK. Done n b -> do
1402- let n1 = len - n
1406+ ParserK. SDone m b -> do
1407+ let n = m + 1
1408+ n1 = len - n
14031409 assertM(n1 <= sum (Prelude. map Array. length (arr: backBuf)))
14041410 let (s1, _) = backTrack n1 (arr: backBuf) stream
14051411 in return (Right b, s1)
1406- ParserK. Error _ err -> do
1412+ ParserK. SError _ err -> do
14071413 let (s1, _) = backTrack maxBound (arr: backBuf) stream
14081414 return (Left (ParseError err), s1)
14091415
0 commit comments