src/Pure/General/codepoint.scala
changeset 75393 87ebf5a50283
parent 75196 e894577e10d8
equal deleted inserted replaced
75388:b3ca4a6ed74b 75393:87ebf5a50283
     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     }