remove debugging print statements from line_gap.sml

This commit is contained in:
2024-07-20 11:31:31 +01:00
parent 8b296d0332
commit 2fd0df641a

View File

@@ -54,8 +54,10 @@ struct
} }
(* TEST CODE *) (* TEST CODE *)
local
fun lineBreaksToString vec = fun lineBreaksToString vec =
(Vector.foldr (fn (el, acc) => Int.toString el ^ ", " ^ acc) "" vec) ^ "\n" (Vector.foldr (fn (el, acc) => Int.toString el ^ ", " ^ acc) "" vec)
^ "\n"
fun checkLineBreaks (v1, v2) = fun checkLineBreaks (v1, v2) =
if v1 = v2 then if v1 = v2 then
@@ -91,7 +93,7 @@ struct
end end
end end
| (_, _) => print "verified lines; no problems\n" | (_, _) => print "verified lines; no problems\n"
in
fun verifyLines (buffer: t) = fun verifyLines (buffer: t) =
let let
val (strings, lines) = val (strings, lines) =
@@ -104,14 +106,16 @@ struct
in in
verifyLineList (strings, lines) verifyLineList (strings, lines)
end end
end
local
fun calcIndexList (accIdx, lst) = fun calcIndexList (accIdx, lst) =
case lst of case lst of
[] => accIdx [] => accIdx
| hd :: tl => calcIndexList (String.size hd + accIdx, tl) | hd :: tl => calcIndexList (String.size hd + accIdx, tl)
fun calcIndexStart lst = calcIndexList (0, lst) fun calcIndexStart lst = calcIndexList (0, lst)
in
fun verifyIndex (buffer: t) = fun verifyIndex (buffer: t) =
let let
val bufferIdx = #idx buffer val bufferIdx = #idx buffer
@@ -138,7 +142,7 @@ struct
in in
() ()
end end
end
local local
fun helpToString (acc, input) = fun helpToString (acc, input) =
@@ -199,14 +203,10 @@ struct
local local
fun forwardLinearSearch (findNum, idx, lines) = fun forwardLinearSearch (findNum, idx, lines) =
if idx = Vector.length lines then if idx = Vector.length lines then
let val _ = print "203\n" idx
in idx
end
else else
let let
val _ = print "before curval\n"
val curVal = Vector.sub (lines, idx) val curVal = Vector.sub (lines, idx)
val _ = print (Int.toString curVal ^ "\n")
in in
if curVal > findNum then idx if curVal > findNum then idx
else forwardLinearSearch (findNum, idx + 1, lines) else forwardLinearSearch (findNum, idx + 1, lines)
@@ -219,7 +219,6 @@ struct
if high >= low then if high >= low then
let let
val midVal = Vector.sub (lines, mid) val midVal = Vector.sub (lines, mid)
val _ = print "218\n"
in in
if midVal = findNum then if midVal = findNum then
mid mid
@@ -228,10 +227,10 @@ struct
else else
helpBinSearch (findNum, lines, low, mid - 1) helpBinSearch (findNum, lines, low, mid - 1)
end end
else if mid >= 0 then
forwardLinearSearch (findNum, mid, lines)
else else
let val _ = print "229\n" 0
in if mid >= 0 then forwardLinearSearch (findNum, mid, lines) else 0
end
end end
in in
fun forwardBinSearch (findNum, lines) = fun forwardBinSearch (findNum, lines) =
@@ -1025,7 +1024,6 @@ struct
in in
fun insert (idx, newString, buffer: t) = fun insert (idx, newString, buffer: t) =
let let
val _ = print "inserting...\n"
val newLines = countLineBreaks newString val newLines = countLineBreaks newString
in in
ins ins
@@ -1042,9 +1040,6 @@ struct
end end
end end
fun println str =
print (str ^ "\n")
(* Delete function and helper functions for it. *) (* Delete function and helper functions for it. *)
local local
fun deleteRightFromHere fun deleteRightFromHere
@@ -1061,14 +1056,9 @@ struct
(rightStringsHd :: rightStringsTl, rightLinesHd :: rightLinesTl) => (rightStringsHd :: rightStringsTl, rightLinesHd :: rightLinesTl) =>
let let
val nextIdx = moveIdx + String.size rightStringsHd val nextIdx = moveIdx + String.size rightStringsHd
val _ = println "1021"
val _ = println ("origIdx = " ^ Int.toString origIdx)
in in
if nextIdx < finish then if nextIdx < finish then
(* Keep moving right. *) (* Keep moving right. *)
let
val _ = println "971"
in
deleteRightFromHere deleteRightFromHere
( origIdx ( origIdx
, origLine , origLine
@@ -1079,39 +1069,28 @@ struct
, rightStringsTl , rightStringsTl
, rightLinesTl , rightLinesTl
) )
end
else if nextIdx > finish then else if nextIdx > finish then
(* Base case: delete from the start of this string and stop moving. *) (* Base case: delete from the start of this string and stop moving. *)
let let
(* Delete part of string. *) (* Delete part of string. *)
val newStrStart = finish - moveIdx val newStrStart = finish - moveIdx
val _ = println
("old len = " ^ Int.toString (String.size rightStringsHd))
val _ = println
("new len = "
^ Int.toString (String.size rightStringsHd - newStrStart))
val newStr = String.substring val newStr = String.substring
( rightStringsHd ( rightStringsHd
, newStrStart , newStrStart
, String.size rightStringsHd - newStrStart , String.size rightStringsHd - newStrStart
) )
val _ = println
("actual len = " ^ Int.toString (String.size newStr))
(* Delete from line vector if we need to. *) (* Delete from line vector if we need to. *)
val newLines = val newLines =
if Vector.length rightLinesHd > 0 then if Vector.length rightLinesHd > 0 then
let let
val _ = println "996"
val lineDeleteStart = val lineDeleteStart =
forwardBinSearch (newStrStart, rightLinesHd) forwardBinSearch (newStrStart, rightLinesHd)
val _ = println ("1100 = " ^ Int.toString newStrStart)
in in
if lineDeleteStart < Vector.length rightLinesHd then if lineDeleteStart < Vector.length rightLinesHd then
let let
val lineDeleteLength = val lineDeleteLength =
Vector.length rightLinesHd - lineDeleteStart Vector.length rightLinesHd - lineDeleteStart
val _ = println "1105"
in in
Vector.tabulate (lineDeleteLength, fn idx => Vector.tabulate (lineDeleteLength, fn idx =>
Vector.sub (rightLinesHd, idx + lineDeleteStart) Vector.sub (rightLinesHd, idx + lineDeleteStart)
@@ -1122,7 +1101,6 @@ struct
end end
else else
rightLinesHd (* empty vector *) rightLinesHd (* empty vector *)
val _ = println "1073"
in in
{ idx = origIdx { idx = origIdx
, line = origLine , line = origLine
@@ -1134,9 +1112,6 @@ struct
end end
else else
(* Delete this node fully, but delete no further. *) (* Delete this node fully, but delete no further. *)
let
val _ = println "1085"
in
{ idx = origIdx { idx = origIdx
, line = origLine , line = origLine
, leftStrings = leftStrings , leftStrings = leftStrings
@@ -1145,11 +1120,7 @@ struct
, rightLines = rightLinesTl , rightLines = rightLinesTl
} }
end end
end
| (_, _) => | (_, _) =>
let
val _ = println "1095"
in
{ idx = 0 { idx = 0
, line = 0 , line = 0
, leftStrings = [] , leftStrings = []
@@ -1157,7 +1128,6 @@ struct
, rightStrings = rightStrings , rightStrings = rightStrings
, rightLines = rightLines , rightLines = rightLines
} }
end
fun moveRightAndDelete fun moveRightAndDelete
( start ( start
@@ -1173,7 +1143,6 @@ struct
(rightStringsHd :: rightStringsTl, rightLinesHd :: rightLinesTl) => (rightStringsHd :: rightStringsTl, rightLinesHd :: rightLinesTl) =>
let let
val nextIdx = curIdx + String.size rightStringsHd val nextIdx = curIdx + String.size rightStringsHd
val _ = println "1113"
in in
if nextIdx < start then if nextIdx < start then
(* Keep moving right. (* Keep moving right.
@@ -1194,7 +1163,6 @@ struct
(* We can join the heads while staying in limit, so do so. *) (* We can join the heads while staying in limit, so do so. *)
let let
val newLeftStringsHd = leftStringsHd ^ rightStringsHd val newLeftStringsHd = leftStringsHd ^ rightStringsHd
val _ = println "1076"
val newLeftLinesHd: int vector = val newLeftLinesHd: int vector =
Vector.tabulate Vector.tabulate
( Vector.length leftLinesHd ( Vector.length leftLinesHd
@@ -1210,7 +1178,6 @@ struct
) )
val newLeftStrings = newLeftStringsHd :: leftStringsTl val newLeftStrings = newLeftStringsHd :: leftStringsTl
val newLeftLines = newLeftLinesHd :: leftLinesTl val newLeftLines = newLeftLinesHd :: leftLinesTl
val _ = println "1093"
in in
moveRightAndDelete moveRightAndDelete
( start ( start
@@ -1225,9 +1192,6 @@ struct
end end
else else
(* Can't join heads while staying in limit, so just cons. *) (* Can't join heads while staying in limit, so just cons. *)
let
val _ = println "1108"
in
moveRightAndDelete moveRightAndDelete
( start ( start
, finish , finish
@@ -1238,12 +1202,8 @@ struct
, rightStringsTl , rightStringsTl
, rightLinesTl , rightLinesTl
) )
end
| (_, _) => | (_, _) =>
(* Can't join heads while staying in limit, so just cons. *) (* Can't join heads while staying in limit, so just cons. *)
let
val _ = println "1121"
in
moveRightAndDelete moveRightAndDelete
( start ( start
, finish , finish
@@ -1253,15 +1213,12 @@ struct
, rightLinesHd :: leftLines , rightLinesHd :: leftLines
, rightStringsTl , rightStringsTl
, rightLinesTl , rightLinesTl
) ))
end)
else if nextIdx > start then else if nextIdx > start then
if nextIdx < finish then if nextIdx < finish then
(* Start deleting from the end of this string, (* Start deleting from the end of this string,
* and then continue deleting rightwards. *) * and then continue deleting rightwards. *)
let let
val _ = println "1263"
val _ = println ("1263 idx = " ^ Int.toString curIdx)
val length = start - curIdx val length = start - curIdx
val newString = String.substring (rightStringsHd, 0, length) val newString = String.substring (rightStringsHd, 0, length)
@@ -1272,7 +1229,6 @@ struct
Vector.fromList [] Vector.fromList []
else else
let let
val _ = println "1141"
val slice = VectorSlice.slice val slice = VectorSlice.slice
(rightLinesHd, 0, SOME (lineDeleteEnd + 1)) (rightLinesHd, 0, SOME (lineDeleteEnd + 1))
in in
@@ -1293,9 +1249,6 @@ struct
(* Join new string with left head. *) (* Join new string with left head. *)
let let
val newLeftStringsHd = leftStringsHd ^ newString val newLeftStringsHd = leftStringsHd ^ newString
val _ = println "1163"
val _ = println ("curIdx = " ^ Int.toString curIdx)
val _ = println ("nextIdx = " ^ Int.toString nextIdx)
val newLeftLinesHd = val newLeftLinesHd =
Vector.tabulate Vector.tabulate
( Vector.length leftLinesHd ( Vector.length leftLinesHd
@@ -1329,9 +1282,6 @@ struct
else else
(* Can't join new string with left head (* Can't join new string with left head
* while staying in limit, so just cons. *) * while staying in limit, so just cons. *)
let
val _ = println "1264"
in
deleteRightFromHere deleteRightFromHere
( curIdx + String.size newString ( curIdx + String.size newString
, curLine + Vector.length newLines , curLine + Vector.length newLines
@@ -1342,11 +1292,8 @@ struct
, rightStringsTl , rightStringsTl
, rightLinesTl , rightLinesTl
) )
end
| (_, _) => | (_, _) =>
let
val _ = println "1276"
in
deleteRightFromHere deleteRightFromHere
( nextIdx ( nextIdx
, nextLine , nextLine
@@ -1356,8 +1303,7 @@ struct
, newLines :: leftLines , newLines :: leftLines
, rightStringsTl , rightStringsTl
, rightLinesTl , rightLinesTl
) ))
end)
end end
else if nextIdx > finish then else if nextIdx > finish then
(* Base case: delete from the middle part of this string. *) (* Base case: delete from the middle part of this string. *)
@@ -1371,42 +1317,29 @@ struct
Vector.fromList [] Vector.fromList []
else else
let let
val _ = println "1224"
val _ = println
("vlen = " ^ Int.toString (Vector.length rightLinesHd))
val _ = println
("sub1LineEnd = " ^ Int.toString sub1LineEnd)
val slice = VectorSlice.slice val slice = VectorSlice.slice
(rightLinesHd, 0, SOME (sub1LineEnd + 1)) (rightLinesHd, 0, SOME (sub1LineEnd + 1))
in in
VectorSlice.vector slice VectorSlice.vector slice
end end
val _ = println "1356"
val sub2Start = finish - curIdx val sub2Start = finish - curIdx
val sub2 = String.substring val sub2 = String.substring
( rightStringsHd ( rightStringsHd
, sub2Start , sub2Start
, String.size rightStringsHd - sub2Start , String.size rightStringsHd - sub2Start
) )
val _ = println "1366"
val sub2LineStart = forwardBinSearch (sub2Start, rightLinesHd) val sub2LineStart = forwardBinSearch (sub2Start, rightLinesHd)
val _ = println "1368"
val sub2Lines = val sub2Lines =
if sub2LineStart < Vector.length rightLinesHd then if sub2LineStart < Vector.length rightLinesHd then
let
val _ = println "1370"
in
Vector.tabulate Vector.tabulate
( Vector.length rightLinesHd - sub2LineStart ( Vector.length rightLinesHd - sub2LineStart
, fn idx => , fn idx =>
Vector.sub (rightLinesHd, idx + sub2LineStart) Vector.sub (rightLinesHd, idx + sub2LineStart)
- (String.size rightStringsHd - String.size sub2) - (String.size rightStringsHd - String.size sub2)
) )
end
else else
Vector.fromList [] Vector.fromList []
val _ = println "1326"
in in
{ idx = curIdx + sub1Length { idx = curIdx + sub1Length
, line = curLine + Vector.length sub1Lines , line = curLine + Vector.length sub1Lines
@@ -1428,14 +1361,11 @@ struct
Vector.fromList [] Vector.fromList []
else else
let let
val _ = println "1390"
val _ = println ("midpoint = " ^ Int.toString midpoint)
val slice = VectorSlice.slice val slice = VectorSlice.slice
(rightLinesHd, 0, SOME (midpoint + 1)) (rightLinesHd, 0, SOME (midpoint + 1))
in in
VectorSlice.vector slice VectorSlice.vector slice
end end
val _ = println "1340"
in in
{ idx = curIdx + strLength { idx = curIdx + strLength
, line = curLine + Vector.length newLeftLines , line = curLine + Vector.length newLeftLines
@@ -1452,10 +1382,6 @@ struct
* and it may extend beyond the current head. * and it may extend beyond the current head.
* So pass the rightStringsTl and rightLinesTl to a function that * So pass the rightStringsTl and rightLinesTl to a function that
* will delete rightwards if it needs to, or else terminates. *) * will delete rightwards if it needs to, or else terminates. *)
let
val _ = println "1373"
val _ = println ("1444 = " ^ Int.toString (finish - start))
in
deleteRightFromHere deleteRightFromHere
( nextIdx ( nextIdx
, curLine + Vector.length rightLinesHd , curLine + Vector.length rightLinesHd
@@ -1467,11 +1393,7 @@ struct
, rightLinesTl , rightLinesTl
) )
end end
end
| (_, _) => | (_, _) =>
let
val _ = println "1386"
in
{ idx = curIdx { idx = curIdx
, line = curLine , line = curLine
, leftStrings = leftStrings , leftStrings = leftStrings
@@ -1479,7 +1401,6 @@ struct
, rightStrings = rightStrings , rightStrings = rightStrings
, rightLines = rightLines , rightLines = rightLines
} }
end
fun deleteLeftFromHere fun deleteLeftFromHere
(start, curIdx, curLine, leftStrings, leftLines, rightStrings, rightLines) = (start, curIdx, curLine, leftStrings, leftLines, rightStrings, rightLines) =
@@ -1488,13 +1409,9 @@ struct
let let
val prevIdx = curIdx - String.size leftStringsHd val prevIdx = curIdx - String.size leftStringsHd
val prevLine = curLine - Vector.length leftLinesHd val prevLine = curLine - Vector.length leftLinesHd
val _ = println "1513"
in in
if start < prevIdx then if start < prevIdx then
(* Continue deleting leftward. *) (* Continue deleting leftward. *)
let
val _ = println "1449"
in
deleteLeftFromHere deleteLeftFromHere
( start ( start
, prevIdx , prevIdx
@@ -1504,7 +1421,6 @@ struct
, rightStrings , rightStrings
, rightLines , rightLines
) )
end
else if start > prevIdx then else if start > prevIdx then
(* Base case: delete end part of this string and return. *) (* Base case: delete end part of this string and return. *)
let let
@@ -1515,9 +1431,6 @@ struct
let let
val midpoint = binSearch val midpoint = binSearch
(String.size newStr - 1, leftLinesHd) (String.size newStr - 1, leftLinesHd)
val _ = println "1461"
val _ = println
("vlen = " ^ (Int.toString (Vector.length leftLinesHd)))
val slice = VectorSlice.slice val slice = VectorSlice.slice
(leftLinesHd, 0, SOME (midpoint + 1)) (leftLinesHd, 0, SOME (midpoint + 1))
in in
@@ -1525,7 +1438,6 @@ struct
end end
else else
Vector.fromList [] Vector.fromList []
val _ = println "1433"
in in
{ idx = prevIdx + String.size newStr { idx = prevIdx + String.size newStr
, line = prevLine + Vector.length newLines , line = prevLine + Vector.length newLines
@@ -1538,9 +1450,6 @@ struct
else else
(* start = prevIdx (* start = prevIdx
* Base case: Remove leftStrings/LinesHd without removing any further. *) * Base case: Remove leftStrings/LinesHd without removing any further. *)
let
val _ = println "1446"
in
{ idx = prevIdx { idx = prevIdx
, line = prevLine , line = prevLine
, leftStrings = leftStringsTl , leftStrings = leftStringsTl
@@ -1549,11 +1458,7 @@ struct
, rightLines = rightLines , rightLines = rightLines
} }
end end
end
| (_, _) => | (_, _) =>
let
val _ = println "1456"
in
{ idx = curIdx { idx = curIdx
, line = curLine , line = curLine
, leftStrings = leftStrings , leftStrings = leftStrings
@@ -1561,7 +1466,6 @@ struct
, rightStrings = rightStrings , rightStrings = rightStrings
, rightLines = rightLines , rightLines = rightLines
} }
end
fun deleteFromLetAndRight fun deleteFromLetAndRight
( start ( start
@@ -1591,7 +1495,6 @@ struct
, rightStrings , rightStrings
, rightLines , rightLines
) )
val _ = println "1600"
in in
deleteLeftFromHere deleteLeftFromHere
( start ( start
@@ -1617,7 +1520,6 @@ struct
case (leftStrings, leftLines) of case (leftStrings, leftLines) of
(leftStringsHd :: leftStringsTl, leftLinesHd :: leftLinesTl) => (leftStringsHd :: leftStringsTl, leftLinesHd :: leftLinesTl) =>
let let
val _ = println "1625"
val prevIdx = curIdx - String.size leftStringsHd val prevIdx = curIdx - String.size leftStringsHd
in in
if prevIdx > finish then if prevIdx > finish then
@@ -1641,7 +1543,6 @@ struct
(* Can join while staying in limit, so do join. *) (* Can join while staying in limit, so do join. *)
let let
val newRightStringsHd = leftStringsHd ^ rightStringsHd val newRightStringsHd = leftStringsHd ^ rightStringsHd
val _ = println "1572"
val newRightLinesHd = val newRightLinesHd =
Vector.tabulate Vector.tabulate
( Vector.length leftLinesHd ( Vector.length leftLinesHd
@@ -1657,9 +1558,6 @@ struct
) )
val newRightStrings = newRightStringsHd :: rightStringsTl val newRightStrings = newRightStringsHd :: rightStringsTl
val newRightLines = newRightLinesHd :: rightLinesTl val newRightLines = newRightLinesHd :: rightLinesTl
in
let
val _ = println "1595"
in in
moveLeftAndDelete moveLeftAndDelete
( start ( start
@@ -1672,12 +1570,8 @@ struct
, newRightLines , newRightLines
) )
end end
end
else else
(* Cannot join while staying in limit, so don't. *) (* Cannot join while staying in limit, so don't. *)
let
val _ = println "1609"
in
moveLeftAndDelete moveLeftAndDelete
( start ( start
, finish , finish
@@ -1688,13 +1582,9 @@ struct
, leftStringsHd :: rightStrings , leftStringsHd :: rightStrings
, leftLinesHd :: rightLines , leftLinesHd :: rightLines
) )
end
| (_, _) => | (_, _) =>
(* Base case: reached empty list while trying to move leftwards. (* Base case: reached empty list while trying to move leftwards.
* Cannot do anything so just return. *) * Cannot do anything so just return. *)
let
val _ = println "1594"
in
moveLeftAndDelete moveLeftAndDelete
( start ( start
, finish , finish
@@ -1704,8 +1594,7 @@ struct
, leftLinesTl , leftLinesTl
, [leftStringsHd] , [leftStringsHd]
, [leftLinesHd] , [leftLinesHd]
) ))
end)
else if prevIdx < finish then else if prevIdx < finish then
if prevIdx > start then if prevIdx > start then
(* Delete from start point of this string, (* Delete from start point of this string,
@@ -1722,23 +1611,18 @@ struct
val midpoint = forwardBinSearch (stringStart, leftLinesHd) val midpoint = forwardBinSearch (stringStart, leftLinesHd)
in in
if midpoint >= 0 then if midpoint >= 0 then
let
val _ = println "1640"
in
Vector.tabulate Vector.tabulate
( Vector.length leftLinesHd - midpoint ( Vector.length leftLinesHd - midpoint
, fn idx => , fn idx =>
Vector.sub (leftLinesHd, idx + midpoint) Vector.sub (leftLinesHd, idx + midpoint)
- stringStart - stringStart
) )
end
else else
Vector.fromList [] Vector.fromList []
end end
val newRightStrings = newString :: rightStrings val newRightStrings = newString :: rightStrings
val newRightLines = newLines :: rightLines val newRightLines = newLines :: rightLines
val prevLine = curLine - Vector.length leftLinesHd val prevLine = curLine - Vector.length leftLinesHd
val _ = println "1632"
in in
deleteLeftFromHere deleteLeftFromHere
( start ( start
@@ -1772,12 +1656,6 @@ struct
in in
if midpoint >= 0 then if midpoint >= 0 then
let let
val _ = println "1684"
val _ = println
("midpoint: " ^ Int.toString midpoint)
val _ = println
("lenth: "
^ Int.toString (Vector.length leftLinesHd))
val slice = VectorSlice.slice val slice = VectorSlice.slice
(leftLinesHd, 0, SOME (midpoint + 1)) (leftLinesHd, 0, SOME (midpoint + 1))
in in
@@ -1788,16 +1666,10 @@ struct
end end
else else
leftLinesHd leftLinesHd
val _ = println "1791; base case"
val sub2Lines = val sub2Lines =
let let
val midpoint = forwardBinSearch (sub2Start, leftLinesHd) val midpoint = forwardBinSearch (sub2Start, leftLinesHd)
val _ = println "1697"
val _ = println
("leftLinesHd: "
^ Int.toString (Vector.length leftLinesHd))
val _ = println ("midpoint: " ^ Int.toString (midpoint))
in in
if midpoint < Vector.length leftLinesHd then if midpoint < Vector.length leftLinesHd then
Vector.tabulate Vector.tabulate
@@ -1810,7 +1682,6 @@ struct
Vector.fromList [] Vector.fromList []
end end
val _ = println "1829; base case"
in in
{ idx = prevIdx + sub1Length { idx = prevIdx + sub1Length
, line = , line =
@@ -1835,7 +1706,6 @@ struct
val lines = val lines =
let let
val lineStart = forwardBinSearch (strStart, leftLinesHd) val lineStart = forwardBinSearch (strStart, leftLinesHd)
val _ = println "1733"
in in
if lineStart < Vector.length leftLinesHd then if lineStart < Vector.length leftLinesHd then
Vector.tabulate Vector.tabulate
@@ -1847,7 +1717,6 @@ struct
else else
Vector.fromList [] Vector.fromList []
end end
val _ = println "1741"
in in
{ idx = prevIdx + String.size str { idx = prevIdx + String.size str
, line = , line =
@@ -1891,7 +1760,6 @@ struct
, idx - Vector.length leftLinesHd , idx - Vector.length leftLinesHd
) + String.size leftStringsHd ) + String.size leftStringsHd
) )
val _ = println "1776"
in in
deleteLeftFromHere deleteLeftFromHere
( start ( start
@@ -1905,9 +1773,6 @@ struct
end end
else else
(* Cannot join while staying in limit. *) (* Cannot join while staying in limit. *)
let
val _ = print "1922"
in
deleteLeftFromHere deleteLeftFromHere
( start ( start
, prevIdx , prevIdx
@@ -1917,12 +1782,8 @@ struct
, leftStringsHd :: rightStrings , leftStringsHd :: rightStrings
, leftLinesHd :: rightLines , leftLinesHd :: rightLines
) )
end
| (_, _) => | (_, _) =>
(* Right strings and lines are empty, so can't join. *) (* Right strings and lines are empty, so can't join. *)
let
val _ = println "1814"
in
deleteLeftFromHere deleteLeftFromHere
( start ( start
, prevIdx , prevIdx
@@ -1931,15 +1792,10 @@ struct
, leftLinesTl , leftLinesTl
, [leftStringsHd] , [leftStringsHd]
, [leftLinesHd] , [leftLinesHd]
) ))
end)
end end
| (_, _) => | (_, _) =>
(* Can't move further leftward so just return. *) (* Can't move further leftward so just return. *)
let
val _ = println "1825"
in
{ idx = 0 { idx = 0
, line = 0 , line = 0
, leftStrings = [] , leftStrings = []
@@ -1947,7 +1803,6 @@ struct
, rightStrings = rightStrings , rightStrings = rightStrings
, rightLines = rightLines , rightLines = rightLines
} }
end
fun del fun del
( start ( start
@@ -1960,9 +1815,6 @@ struct
, rightLines , rightLines
) = ) =
if start > curIdx then if start > curIdx then
let
val _ = println "1963"
in
moveRightAndDelete moveRightAndDelete
( start ( start
, finish , finish
@@ -1973,12 +1825,8 @@ struct
, rightStrings , rightStrings
, rightLines , rightLines
) )
end
else if start < curIdx then else if start < curIdx then
if finish <= curIdx then if finish <= curIdx then
let
val _ = println "1976"
in
moveLeftAndDelete moveLeftAndDelete
( start ( start
, finish , finish
@@ -1989,11 +1837,7 @@ struct
, rightStrings , rightStrings
, rightLines , rightLines
) )
end
else else
let
val _ = println "1988"
in
deleteFromLetAndRight deleteFromLetAndRight
( start ( start
, finish , finish
@@ -2004,11 +1848,7 @@ struct
, rightStrings , rightStrings
, rightLines , rightLines
) )
end
else else
let
val _ = println "2000"
in
deleteRightFromHere deleteRightFromHere
( curIdx ( curIdx
, curLine , curLine
@@ -2019,23 +1859,9 @@ struct
, rightStrings , rightStrings
, rightLines , rightLines
) )
end
in in
fun delete (start, length, buffer: t) = fun delete (start, length, buffer: t) =
if length > 0 then if length > 0 then
let
val _ = println "deleting..."
val _ = println (String.concat
[ "length = "
, Int.toString length
, "| start = "
, Int.toString start
, "| start + length = "
, Int.toString (start + length)
, "| bufferIdx = "
, Int.toString (#idx buffer)
])
in
del del
( start ( start
, start + length , start + length
@@ -2046,9 +1872,7 @@ struct
, #rightStrings buffer , #rightStrings buffer
, #rightLines buffer , #rightLines buffer
) )
end
else else
buffer buffer
end end
end end