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