diff lib/ur/string.ur @ 1390:65fbb250b875

More string processing
author Adam Chlipala <adam@chlipala.net>
date Thu, 13 Jan 2011 10:02:50 -0500
parents 9a721f0722d3
children 2da693675de9
line wrap: on
line diff
--- a/lib/ur/string.ur	Tue Jan 11 18:04:52 2011 -0500
+++ b/lib/ur/string.ur	Thu Jan 13 10:02:50 2011 -0500
@@ -10,6 +10,7 @@
 val suffix = Basis.strsuffix
 
 val index = Basis.strindex
+fun sindex r = Basis.strsindex r.Haystack r.Needle
 val atFirst = Basis.strchr
 
 fun mindex {Haystack = s, Needle = chs} =
@@ -50,6 +51,12 @@
                         sub s i,
                         suffix s (i + 1))
 
+fun ssplit r =
+    case sindex r of
+        None => None
+      | Some i => Some (substring r.Haystack {Start = 0, Len = i},
+                        suffix r.Haystack (i + length r.Needle))
+
 fun all f s =
     let
         val len = length s