1 # This file is part of NIT ( http://www.nitlanguage.org ).
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
15 #alt1 import splay_ropes
16 #alt2 import bufferized_ropes
18 var x
:String = new RopeString
26 var lst
= new List[String]
28 lst
.push
(new RopeString.from
("ZZ"))
30 lst
.push
((lst
.last
* 5))
32 lst
.push
(lst
.last
.insert_at
("AA", 2))
34 lst
.push
(lst
.last
.insert_at
("NN", 0))
36 lst
.push
(lst
.last
.insert_at
("II", 1))
38 lst
.push
(lst
.last
.insert_at
(lst
.last
, 2))
40 var ss
= lst
.last
.substring
(4,4)
44 ss
= ss
.as(RopeString).insert_at
("DD", 2)
48 ss
= ss
.insert_at
("EE", 0)
52 ss
= ss
.insert_at
("FF", ss
.length
)
68 var atb
= new Array[String]
70 var s
: String = new RopeString
71 s
= s
+ "./examples/hello_world.nit".substring
(11,11) + ".types"
78 var str
= new RopeString.from
("now") + " step" + " live..."
84 for i
in str
.chars
do printn i
87 for i
in [0..str
.length
[ do printn str
.chars
[i
]
90 var iter
= str
.chars
.iterator
91 for i
in [0..str
.length
[ do
92 assert str
.chars
[i
] == iter
.item
96 assert "now step live...".hash
== str
.hash
98 for i
in str
.chars
.iterator_from
(8) do printn i
101 for i
in str
.chars
.iterator_from
(str
.length-1
) do printn i
104 for i
in str
.as(RopeString).reverse_substrings_from
(12) do printn i
107 for i
in str
.chars
.reverse_iterator
do printn i
110 for i
in str
.chars
.reverse_iterator_from
(0) do printn i
113 var str2
= str
.as(RopeString).insert_at
(str
.substring_from
(3), 3)
117 print str2
.substring
(2,3)
119 for i
in lst
do print i