3 ocaml str.cma
-stdin "$1" "$2" <<EOF
4 let fixup = let open Str in
5 let dash = regexp {|\([^ ]*\) +- +\(.*\)|}
6 and head = regexp {|-----\(.*\)-----|} in fun s ->
7 String.escaped s |> global_replace dash {|\1\t\2|}
8 |> global_replace head {|\xc2\xb7\1|};;
9 let rec iter ic = match input_line ic with
10 | s -> Printf.printf "\"%s\";\\n" @@ fixup s; iter ic
11 | exception End_of_file -> ();;
12 Printf.printf "let keys = [\\n";
13 iter @@ open_in Sys.argv.(1);;
14 Printf.printf "];;\\nlet version = %S;;\\n" Sys.argv.(2);;