add function to get a char from a string_iterator in line_gap.sml

This commit is contained in:
2025-10-08 06:17:01 +01:00
parent 3345f618ca
commit 7248a3e27f

View File

@@ -39,6 +39,7 @@ sig
val makeStringIterator: t -> string_iterator
val moveIteratorToIdx: int * string_iterator -> string_iterator
val subIterator: int * string_iterator -> char
(* for testing *)
val verifyIndex: t -> unit
@@ -3381,6 +3382,16 @@ struct
else
moveIteratorRight (findIdx, idx, leftStrings, rightStrings)
fun subIterator (findIdx, {idx, leftStrings, rightStrings}) =
if findIdx >= idx then
case rightStrings of
hd :: tl => subRight (findIdx, idx, hd, tl)
| [] => raise Fail "not found"
else
case leftStrings of
hd :: tl => subLeft (findIdx, idx, hd, tl)
| [] => raise Fail "not found"
(* TEST CODE *)
local
fun lineBreaksToString vec =