src/Pure/General/symbol.scala
changeset 65196 e8760a98db78
parent 64682 7e119f32276a
child 65335 7634d33c1a79
equal deleted inserted replaced
65195:ffab6f460a82 65196:e8760a98db78
   128 
   128 
   129   def explode(text: CharSequence): List[Symbol] = iterator(text).toList
   129   def explode(text: CharSequence): List[Symbol] = iterator(text).toList
   130 
   130 
   131   def length(text: CharSequence): Int = iterator(text).length
   131   def length(text: CharSequence): Int = iterator(text).length
   132 
   132 
   133   object Length extends Text.Length
       
   134   {
       
   135     def apply(text: String): Int = length(text)
       
   136     def offset(text: String, i: Int): Option[Text.Offset] =
       
   137       if (i <= 0 || iterator(text).forall(s => s.length == 1)) Text.Length.offset(text, i)
       
   138       else if (i <= length(text)) Some(iterator(text).take(i).mkString.length)
       
   139       else None
       
   140   }
       
   141 
       
   142 
   133 
   143   /* decoding offsets */
   134   /* decoding offsets */
   144 
   135 
   145   object Index
   136   object Index
   146   {
   137   {