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
17 var x
:String = new RopeString
25 var lst
= new List[String]
27 lst
.push
(new RopeString.from
("ZZ"))
29 lst
.push
((lst
.last
* 5))
31 lst
.push
(lst
.last
.insert_at
("AA", 2))
33 lst
.push
(lst
.last
.insert_at
("NN", 0))
35 lst
.push
(lst
.last
.insert_at
("II", 1))
37 lst
.push
(lst
.last
.insert_at
(lst
.last
, 2))
39 var ss
= lst
.last
.substring
(4,4)
43 ss
= ss
.as(RopeString).insert_at
("DD", 2)
47 ss
= ss
.insert_at
("EE", 0)
51 ss
= ss
.insert_at
("FF", ss
.length
)
67 var atb
= new Array[String]
69 var s
: String = new RopeString
70 s
= s
+ "./examples/hello_world.nit".substring
(11,11) + ".types"
77 var str
= new RopeString.from
("now") + " step" + " live..."
83 for i
in str
.chars
do printn i
86 for i
in [0..str
.length
[ do printn str
.chars
[i
]
89 var iter
= str
.chars
.iterator
90 for i
in [0..str
.length
[ do
91 assert str
.chars
[i
] == iter
.item
95 assert "now step live...".hash
== str
.hash
97 for i
in str
.chars
.iterator_from
(8) do printn i
100 for i
in str
.chars
.iterator_from
(str
.length-1
) do printn i
103 for i
in str
.as(RopeString).reverse_substrings_from
(12) do printn i
106 for i
in str
.chars
.reverse_iterator
do printn i
109 for i
in str
.chars
.reverse_iterator_from
(0) do printn i
112 var str2
= str
.as(RopeString).insert_at
(str
.substring_from
(3), 3)
116 print str2
.substring
(2,3)
118 for i
in lst
do print i