init from(root: Concat, pos: Int) do
var r = new RopeCharIteratorPiece(root, false, true, null)
var rnod: String = root
var off = pos
loop
if rnod isa Concat then
if off >= rnod._left.length then
off -= rnod._left.length
rnod = rnod._right
r = new RopeCharIteratorPiece(rnod, false, true, r)
else
r.ldone = true
rnod = rnod._left
r = new RopeCharIteratorPiece(rnod, false, true, r)
end
else
str = rnod.as(FlatString)
r.ldone = true
iter = r
self.pos = pos - off
break
end
end
end
lib/core/text/ropes.nit:507,2--530,4