ref: b2beb0311ec840da0eafa95888d816af0353436e
dir: /utils.ml/
exception Syntax_error of string exception Runtime_error of string let token_re = Str.regexp "~@\\|[][{}()'`~^@]\\|\"\\(\\\\.\\|[^\"]\\)*\"?\\|;.*\\$\\|[^][ \n{}('\"`,;)]*" (* copied verbatim - must needs grok *) let gsub re f str = String.concat "" (List.map (function Str.Delim x -> f x | Str.Text x -> x) (Str.full_split re str)) let tokenize str = List.map (function Str.Delim x -> String.trim x (* move trim to regex for speed? *) | Str.Text _ -> "tokenize botch") (List.filter (function Str.Delim _ -> true | Str.Text _ -> false) (Str.full_split token_re str))