equal
deleted
inserted
replaced
127 } |
127 } |
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 object Length extends Line.Length { def apply(text: String): Int = length(text) } |
132 |
|
133 object Length extends isabelle.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)) isabelle.Length.offset(text, i) |
|
138 else if (i <= length(text)) Some(iterator(text).take(i).mkString.length) |
|
139 else None |
|
140 } |
133 |
141 |
134 |
142 |
135 /* decoding offsets */ |
143 /* decoding offsets */ |
136 |
144 |
137 object Index |
145 object Index |