2017-08-18 19:43:52 +02:00
|
|
|
open Sexplib
|
2014-10-26 12:46:17 +01:00
|
|
|
|
|
|
|
(*
|
2014-09-18 17:01:43 +02:00
|
|
|
let rec transpose = function
|
|
|
|
| [] -> []
|
|
|
|
| []::tail -> transpose tail
|
|
|
|
| (x::t1)::t2 ->
|
|
|
|
let new_head = (x::(List.map List.hd t2))
|
|
|
|
and new_tail = (transpose (t1 :: (List.map List.tl t2) ))
|
|
|
|
in
|
|
|
|
new_head @ new_tail
|
|
|
|
;;
|
2014-10-26 12:46:17 +01:00
|
|
|
*)
|
|
|
|
|
|
|
|
let input_to_sexp s =
|
|
|
|
let result =
|
2017-08-18 19:43:52 +02:00
|
|
|
String_ext.split ~on:'\n' s
|
|
|
|
|> List.filter (fun x-> (String_ext.strip x) <> "")
|
|
|
|
|> List.map (fun x-> "("^
|
|
|
|
(Str.global_replace (Str.regexp "=") " " x)
|
|
|
|
^")")
|
|
|
|
|> String.concat ""
|
2014-10-26 12:46:17 +01:00
|
|
|
in
|
|
|
|
print_endline ("("^result^")");
|
|
|
|
"("^result^")"
|
|
|
|
|> Sexp.of_string
|
2016-02-03 00:37:03 +01:00
|
|
|
|
|
|
|
let rmdir dirname =
|
|
|
|
let rec remove_one dir =
|
|
|
|
Sys.chdir dir;
|
|
|
|
Sys.readdir "."
|
2017-08-18 19:43:52 +02:00
|
|
|
|> Array.iter (fun x ->
|
|
|
|
match (Sys.is_directory x, Sys.file_exists x) with
|
|
|
|
| (true, _) -> remove_one x
|
|
|
|
| (_, true) -> Sys.remove x
|
2016-02-03 00:37:03 +01:00
|
|
|
| _ -> failwith ("Unable to remove file "^x^".")
|
|
|
|
);
|
|
|
|
Sys.chdir "..";
|
|
|
|
Unix.rmdir dir
|
|
|
|
in
|
|
|
|
remove_one dirname
|
|
|
|
|
|
|
|
|
2014-08-27 16:38:13 +02:00
|
|
|
|