parent
6a37c0682a
commit
ab2c082cb3
2 changed files with 67 additions and 1 deletions
|
|
@ -204,8 +204,8 @@ proc `[]`*(r: Rope, i: int): char {.rtl, extern: "nroCharAt".} =
|
||||||
if x.left.length > j:
|
if x.left.length > j:
|
||||||
x = x.left
|
x = x.left
|
||||||
else:
|
else:
|
||||||
|
dec(j, x.left.length)
|
||||||
x = x.right
|
x = x.right
|
||||||
dec(j, x.len)
|
|
||||||
|
|
||||||
iterator leaves*(r: Rope): string =
|
iterator leaves*(r: Rope): string =
|
||||||
## iterates over any leaf string in the rope `r`.
|
## iterates over any leaf string in the rope `r`.
|
||||||
|
|
|
||||||
66
tests/stdlib/tropes.nim
Normal file
66
tests/stdlib/tropes.nim
Normal file
|
|
@ -0,0 +1,66 @@
|
||||||
|
import ropes
|
||||||
|
|
||||||
|
|
||||||
|
block:
|
||||||
|
let r: Rope = nil
|
||||||
|
doAssert r[0] == '\0'
|
||||||
|
|
||||||
|
block:
|
||||||
|
var
|
||||||
|
r1 = rope("Hello")
|
||||||
|
r2 = rope("Nim-Lang")
|
||||||
|
|
||||||
|
let r = r1 & r2
|
||||||
|
let s = $r
|
||||||
|
for i in 0 ..< r.len:
|
||||||
|
doAssert r[i] == s[i]
|
||||||
|
|
||||||
|
doAssert r[66] == '\0'
|
||||||
|
|
||||||
|
block:
|
||||||
|
let r = rope("Hello, Nim-Lang")
|
||||||
|
|
||||||
|
let s = $r
|
||||||
|
for i in 0 ..< r.len:
|
||||||
|
doAssert r[i] == s[i]
|
||||||
|
|
||||||
|
doAssert r[66] == '\0'
|
||||||
|
|
||||||
|
block:
|
||||||
|
var r: Rope
|
||||||
|
r.add rope("Nim ")
|
||||||
|
r.add rope("is ")
|
||||||
|
r.add rope("a ")
|
||||||
|
r.add rope("great ")
|
||||||
|
r.add rope("language")
|
||||||
|
|
||||||
|
let s = $r
|
||||||
|
for i in 0 ..< r.len:
|
||||||
|
doAssert r[i] == s[i]
|
||||||
|
|
||||||
|
doAssert r[66] == '\0'
|
||||||
|
|
||||||
|
block:
|
||||||
|
var r: Rope
|
||||||
|
r.add rope("My Conquest")
|
||||||
|
r.add rope(" is ")
|
||||||
|
r.add rope("the Sea of Stars")
|
||||||
|
|
||||||
|
let s = $r
|
||||||
|
for i in 0 ..< r.len:
|
||||||
|
doAssert r[i] == s[i]
|
||||||
|
|
||||||
|
doAssert r[66] == '\0'
|
||||||
|
|
||||||
|
block:
|
||||||
|
var r: Rope
|
||||||
|
r.add rope("My Conquest")
|
||||||
|
r.add rope(" is ")
|
||||||
|
r.add rope("the Sea of Stars")
|
||||||
|
|
||||||
|
var i: int
|
||||||
|
for item in r:
|
||||||
|
doAssert r[i] == item
|
||||||
|
inc i
|
||||||
|
|
||||||
|
doAssert r[66] == '\0'
|
||||||
Loading…
Add table
Add a link
Reference in a new issue