ref: bdb99b496ec68880effa7df50fb4b05e7c1799bc
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))