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 var x
:String = new RopeString
23 var lst
= new List[String]
25 lst
.push
(new RopeString.from
("ZZ"))
27 lst
.push
((lst
.last
* 5))
29 lst
.push
(lst
.last
.insert_at
("AA", 2))
31 lst
.push
(lst
.last
.insert_at
("NN", 0))
33 lst
.push
(lst
.last
.insert_at
("II", 1))
35 lst
.push
(lst
.last
.insert_at
(lst
.last
, 2))
37 var ss
= lst
.last
.substring
(4,4)
41 ss
= ss
.as(RopeString).insert_at
("DD", 2)
45 ss
= ss
.insert_at
("EE", 0)
49 ss
= ss
.insert_at
("FF", ss
.length
)
65 var atb
= new Array[String]
67 var s
= new RopeString
68 s
= s
.prepend
(".types").as(RopeString)
69 s
= s
.prepend
("./examples/hello_world.nit".substring
(11,11)).as(RopeString)
70 s
= s
.append
(".").as(RopeString)
71 s
= s
.append
("1").as(RopeString)
72 s
= s
.append
(".o").as(RopeString)
76 var str
= new RopeString.from
("now") + " step" + " live..."
82 for i
in str
.chars
do printn i
85 for i
in [0..str
.length
[ do printn str
.chars
[i
]
88 var iter
= str
.chars
.iterator
89 for i
in [0..str
.length
[ do
90 assert str
.chars
[i
] == iter
.item
94 assert "now step live...".hash
== str
.hash
96 for i
in str
.chars
.iterator_from
(8) do printn i
99 for i
in str
.chars
.iterator_from
(str
.length-1
) do printn i
102 for i
in str
.as(RopeString).reverse_substrings_from
(12) do printn i
105 for i
in str
.chars
.reverse_iterator
do printn i
108 for i
in str
.chars
.reverse_iterator_from
(0) do printn i
111 var str2
= str
.as(RopeString).insert_at
(str
.substring_from
(3), 3)
115 print str2
.substring
(2,3)
117 for i
in lst
do print i