module OASISUtils:Various utilitiessig..end
module MapString:Map.Swith type key = String.t
val map_string_of_assoc : (string * 'a) list -> 'a MapString.tmodule SetString:Set.Swith type elt = String.t
val set_string_add_list : SetString.t ->
SetString.elt list -> SetString.tval set_string_of_list : SetString.elt list -> SetString.tmodule HashStringCsl:Hashtbl.Swith type key = String.t
val varname_of_string : ?hyphen:char -> string -> stringvarname_of_string ~hyphen:c s Transform a string s into a variable name,
following this convention: no digit at the beginning, lowercase, only a-z
and 0-9 chars. Whenever there is a problem, use an hyphen char.val varname_concat : ?hyphen:char -> string -> string -> stringvarname_concat ~hyphen p s Concat variable name, removing hyphen at end
of p and at beginning of s.val is_varname : string -> boolis_varname str Check that the string str is a valid varname. See
OASISUtils.varname_of_string for definition.failwith and Printf.sprintf. The
numbering scheme is unfortunate but required to have a polymorphic functions.
Without setting the number of arguments, the return of failwith prevents
type inference, because this function doesn't return.
Example: failwithf2 "Cannot do %s because of %d" str i
val failwithf1 : ('a -> string, unit, string) Pervasives.format -> 'a -> 'bval failwithf2 : ('a -> 'b -> string, unit, string) Pervasives.format -> 'a -> 'b -> 'cval failwithf3 : ('a -> 'b -> 'c -> string, unit, string) Pervasives.format ->
'a -> 'b -> 'c -> 'dval failwithf4 : ('a -> 'b -> 'c -> 'd -> string, unit, string) Pervasives.format ->
'a -> 'b -> 'c -> 'd -> 'eval failwithf5 : ('a -> 'b -> 'c -> 'd -> 'e -> string, unit, string) Pervasives.format ->
'a -> 'b -> 'c -> 'd -> 'e -> 'fval split : char -> string -> string listsplit c s Split the string s at char c. It doesn't include the
separator.val compare_csl : string -> string -> intval split_comma : string -> string listval split_optional_parentheses : string -> string * string option