equal
deleted
inserted
replaced
5 */ |
5 */ |
6 |
6 |
7 package isabelle |
7 package isabelle |
8 |
8 |
9 |
9 |
10 object Codepoint |
10 object Codepoint { |
11 { |
|
12 def string(c: Int): String = new String(Array(c), 0, 1) |
11 def string(c: Int): String = new String(Array(c), 0, 1) |
13 |
12 |
14 private class Iterator_Offset[A](s: String, result: (Int, Text.Offset) => A) |
13 private class Iterator_Offset[A](s: String, result: (Int, Text.Offset) => A) extends Iterator[A] { |
15 extends Iterator[A] |
|
16 { |
|
17 var offset = 0 |
14 var offset = 0 |
18 def hasNext: Boolean = offset < s.length |
15 def hasNext: Boolean = offset < s.length |
19 def next(): A = |
16 def next(): A = { |
20 { |
|
21 val c = s.codePointAt(offset) |
17 val c = s.codePointAt(offset) |
22 val i = offset |
18 val i = offset |
23 offset += Character.charCount(c) |
19 offset += Character.charCount(c) |
24 result(c, i) |
20 result(c, i) |
25 } |
21 } |