diff options
author | Adam Chlipala <adam@chlipala.net> | 2011-01-11 18:04:52 -0500 |
---|---|---|
committer | Adam Chlipala <adam@chlipala.net> | 2011-01-11 18:04:52 -0500 |
commit | 4eb2a196fa24d52462f3f325d73952fe2d1c12cd (patch) | |
tree | 5e3b768a97aef4741f8ba13b7b6d80490fe39b12 /lib/ur/string.ur | |
parent | 138f64b8f02f05e6073f61b1db2c3d5e805b75c0 (diff) |
Some more string parsing functions; naughtyDebug
Diffstat (limited to 'lib/ur/string.ur')
-rw-r--r-- | lib/ur/string.ur | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/lib/ur/string.ur b/lib/ur/string.ur index 235e5939..a93f7a57 100644 --- a/lib/ur/string.ur +++ b/lib/ur/string.ur @@ -24,17 +24,31 @@ fun mindex {Haystack = s, Needle = chs} = fun substring s {Start = start, Len = len} = Basis.substring s start len +fun seek s ch = + case index s ch of + None => None + | Some i => Some (suffix s (i + 1)) +fun mseek {Haystack = s, Needle = chs} = + case mindex {Haystack = s, Needle = chs} of + None => None + | Some i => Some (sub s i, suffix s (i + 1)) + fun split s ch = case index s ch of None => None | Some i => Some (substring s {Start = 0, Len = i}, - substring s {Start = i + 1, Len = length s - i - 1}) + suffix s (i + 1)) +fun split' s ch = + case index s ch of + None => None + | Some i => Some (substring s {Start = 0, Len = i}, + suffix s i) fun msplit {Haystack = s, Needle = chs} = case mindex {Haystack = s, Needle = chs} of None => None | Some i => Some (substring s {Start = 0, Len = i}, sub s i, - substring s {Start = i + 1, Len = length s - i - 1}) + suffix s (i + 1)) fun all f s = let |