ref: 0560b9b189c123d48e91231a3adf15016c0a49d9
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) )