summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlasdair Armstrong2017-07-05 17:42:06 +0100
committerAlasdair Armstrong2017-07-05 17:42:06 +0100
commitcd3f299735d11241f064e9832c177830b78dcca4 (patch)
tree68371a087d7700c3d63834c3cc39e1c3ff970fc3 /src
parent5f46cb01ed07fbca390535440f77f1816cb61684 (diff)
Added split_on_char as a utility function in Util.ml, and replaced usage in sail.ml
Current REMS install script and Jenkins CI server is on an older ocaml which doesn't have this function in String.
Diffstat (limited to 'src')
-rw-r--r--src/sail.ml2
-rw-r--r--src/util.ml9
-rw-r--r--src/util.mli2
3 files changed, 11 insertions, 2 deletions
diff --git a/src/sail.ml b/src/sail.ml
index 41c42fe4..d84144e1 100644
--- a/src/sail.ml
+++ b/src/sail.ml
@@ -89,7 +89,7 @@ let options = Arg.align ([
" (debug) skip constraint resolution in type-checking");
( "-mono-split",
Arg.String (fun s ->
- let l = String.split_on_char ':' s in
+ let l = Util.split_on_char ':' s in
match l with
| [fname;line;var] -> opt_mono_split := ((fname,int_of_string line),var)::!opt_mono_split
| _ -> raise (Arg.Bad (s ^ " not of form <filename>:<line>:<variable>"))),
diff --git a/src/util.ml b/src/util.ml
index bb277016..9b76c118 100644
--- a/src/util.ml
+++ b/src/util.ml
@@ -144,7 +144,14 @@ let rec compare_list f l1 l2 =
compare_list f l1 l2
else
c
-
+
+let rec split_on_char sep str =
+ try
+ let sep_pos = String.index str sep in
+ String.sub str 0 sep_pos :: split_on_char sep (String.sub str (sep_pos + 1) (String.length str - (sep_pos + 1)))
+ with
+ | Not_found -> [str]
+
let map_changed_default d f l =
let rec g = function
| [] -> ([],false)
diff --git a/src/util.mli b/src/util.mli
index 496c63cf..099839bb 100644
--- a/src/util.mli
+++ b/src/util.mli
@@ -198,3 +198,5 @@ module ExtraSet : functor (S : Set.S) ->
(*Formatting functions*)
val string_of_list : string -> ('a -> string) -> 'a list -> string
+
+val split_on_char : char -> string -> string list