@@ -1048,28 +1048,31 @@ parseBreak parser input = do
10481048 -- If we stop in an alternative, it will try calling the next
10491049 -- parser, the next parser may call initial returning Partial and
10501050 -- then immediately we have to call extract on it.
1051- ParserK. Partial 0 cont1 ->
1051+ ParserK. SPartial ( - 1 ) cont1 ->
10521052 go [] cont1 StreamK. nil
1053- ParserK. Partial n cont1 -> do
1054- let n1 = negate n
1053+ ParserK. SPartial m cont1 -> do
1054+ let n = m + 1
1055+ n1 = negate n
10551056 assertM(n1 >= 0 && n1 <= sum (Prelude. map length backBuf))
10561057 let (s1, backBuf1) = backTrack n1 backBuf StreamK. nil
10571058 in go backBuf1 cont1 s1
1058- ParserK. Continue 0 cont1 ->
1059+ ParserK. SContinue ( - 1 ) cont1 ->
10591060 go backBuf cont1 StreamK. nil
1060- ParserK. Continue n cont1 -> do
1061- let n1 = negate n
1061+ ParserK. SContinue m cont1 -> do
1062+ let n = m + 1
1063+ n1 = negate n
10621064 assertM(n1 >= 0 && n1 <= sum (Prelude. map length backBuf))
10631065 let (s1, backBuf1) = backTrack n1 backBuf StreamK. nil
10641066 in go backBuf1 cont1 s1
1065- ParserK. Done 0 b ->
1067+ ParserK. SDone ( - 1 ) b ->
10661068 return (Right b, StreamK. nil)
1067- ParserK. Done n b -> do
1068- let n1 = negate n
1069+ ParserK. SDone m b -> do
1070+ let n = m + 1
1071+ n1 = negate n
10691072 assertM(n1 >= 0 && n1 <= sum (Prelude. map length backBuf))
10701073 let (s1, _) = backTrack n1 backBuf StreamK. nil
10711074 in return (Right b, s1)
1072- ParserK. Error _ err -> do
1075+ ParserK. SError _ err -> do
10731076 let (s1, _) = backTrack maxBound backBuf StreamK. nil
10741077 return (Left (ParseError err), s1)
10751078
@@ -1081,7 +1084,8 @@ parseBreak parser input = do
10811084 pRes <- parserk (ParserK. Chunk arr)
10821085 let len = length arr
10831086 case pRes of
1084- ParserK. Partial n cont1 ->
1087+ ParserK. SPartial m cont1 -> do
1088+ let n = m + 1
10851089 case compare n len of
10861090 EQ -> go [] cont1 stream
10871091 LT -> do
@@ -1095,7 +1099,8 @@ parseBreak parser input = do
10951099 let (s1, _) = backTrack n1 backBuf s
10961100 go [] cont1 s1
10971101 GT -> seekErr n len
1098- ParserK. Continue n cont1 ->
1102+ ParserK. SContinue m cont1 -> do
1103+ let n = m + 1
10991104 case compare n len of
11001105 EQ -> go (arr: backBuf) cont1 stream
11011106 LT -> do
@@ -1109,12 +1114,13 @@ parseBreak parser input = do
11091114 let (s1, backBuf1) = backTrack n1 backBuf s
11101115 go backBuf1 cont1 s1
11111116 GT -> seekErr n len
1112- ParserK. Done n b -> do
1113- let n1 = len - n
1117+ ParserK. SDone m b -> do
1118+ let n = m + 1
1119+ n1 = len - n
11141120 assertM(n1 <= sum (Prelude. map length (arr: backBuf)))
11151121 let (s1, _) = backTrack n1 (arr: backBuf) stream
11161122 in return (Right b, s1)
1117- ParserK. Error _ err -> do
1123+ ParserK. SError _ err -> do
11181124 let (s1, _) = backTrack maxBound (arr: backBuf) stream
11191125 return (Left (ParseError err), s1)
11201126
0 commit comments