Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>
+# An Iterator over a RopeBuffer.
class RopeBufferIter
super IndexedIterator[Char]
class RopeBufferIter
super IndexedIterator[Char]
var sit: IndexedIterator[Char]
var sit: IndexedIterator[Char]
+ # Native string iterated over.
+ # Current position in `ns`.
+ # Maximum position iterable.
var maxpos: Int
redef var index: Int
var maxpos: Int
redef var index: Int
+ # Init the iterator from a RopeBuffer.
init(t: RopeBuffer) is old_style_init do
ns = t.ns
maxpos = t.rpos
init(t: RopeBuffer) is old_style_init do
ns = t.ns
maxpos = t.rpos
+ # Init the iterator from a RopeBuffer starting from `pos`.
init from(t: RopeBuffer, pos: Int) do
ns = t.ns
maxpos = t.length
init from(t: RopeBuffer, pos: Int) do
ns = t.ns
maxpos = t.length
+# Reverse iterator over a RopeBuffer.
class RopeBufferReviter
super IndexedIterator[Char]
class RopeBufferReviter
super IndexedIterator[Char]
var sit: IndexedIterator[Char]
var sit: IndexedIterator[Char]
+ # Native string iterated over.
+ # Current position in `ns`.
var pns: Int
redef var index: Int
var pns: Int
redef var index: Int
+ # Init the iterator from a RopeBuffer.
init(tgt: RopeBuffer) is old_style_init do
sit = tgt.str.chars.reverse_iterator
pns = tgt.rpos - 1
init(tgt: RopeBuffer) is old_style_init do
sit = tgt.str.chars.reverse_iterator
pns = tgt.rpos - 1
+ # Init the iterator from a RopeBuffer starting from `pos`.
init from(tgt: RopeBuffer, pos: Int) do
sit = tgt.str.chars.reverse_iterator_from(pos - tgt.rpos - tgt.dumped)
pns = pos - tgt.str.length
init from(tgt: RopeBuffer, pos: Int) do
sit = tgt.str.chars.reverse_iterator_from(pos - tgt.rpos - tgt.dumped)
pns = pos - tgt.str.length