let main () =
let oc = open_out Sys.argv.(1) in
let oc_doc = open_out Sys.argv.(2) in
+ let oc_js = open_out Sys.argv.(3) in
output_string oc "(* GENERATED by make_table: DO NOT EDIT! *)\n";
output_string oc_doc "(* GENERATED by make_table: DO NOT EDIT! *)\n";
+ output_string oc_js "/* GENERATED by make_table: DO NOT EDIT! */\n";
output_string oc "let macro2utf8 = Hashtbl.create 2000\n";
output_string oc "let utf82macro = Hashtbl.create 2000\n";
output_string oc "let data = [\n";
+ output_string oc_js "var macro2utf8 = new Object();\n";
+ output_string oc_js "var utf82macro = new Object();\n";
let macro2utf8 = parse_from_xml () in
Hashtbl.iter
(fun macro utf8 ->
+ let hescape s =
+ String.escaped (Netencoding.Html.encode ~in_enc:`Enc_utf8 () s) in
fprintf oc " \"%s\", \"%s\";\n" macro (String.escaped utf8);
- fprintf oc_doc "\\%s %s\n" macro utf8)
+ fprintf oc_doc "\\%s %s\n" macro utf8;
+ fprintf oc_js "macro2utf8[\"%s\"] = \"%s\";\n"
+ macro (hescape utf8);
+ fprintf oc_js "utf82macro[\"%s\"] = \"%s\";\n"
+ (hescape utf8) macro)
macro2utf8;
output_string oc " ];;\n";
output_string oc "let _ =\n";