(* $Id: main.ml 662 2004-05-25 20:57:28Z gerd $ * ---------------------------------------------------------------------- * *) open Pxp_types open Pxp_document open Pxp_yacc let rec print_error e = prerr_endline(string_of_exn e) ;; let run f a = try f a with e -> print_error e ;; let convert_to_html filename = (* read in style definition *) let document = parse_document_entity { default_config with encoding = `Enc_iso88591 } (from_file filename) To_html.tag_map in let root = document # root in let store = new To_html.store in root # extension # to_html store stdout ;; let convert_to_text filename = (* read in style definition *) let document = parse_document_entity default_config (from_file filename) To_text.tag_map in let root = document # root in let store = new To_text.store in let box = new To_text.box 79 79 in root # extension # to_box store box; box # output 0 0 stdout ;; let main() = let want_html = ref false in let want_text = ref false in let filename = ref None in Arg.parse [ "-html", Arg.Set want_html, " convert file to html"; "-text", Arg.Set want_text, " convert file to text"; ] (fun s -> match !filename with None -> filename := Some s | Some _ -> raise (Arg.Bad "Multiple arguments not allowed.")) "usage: readme [ -text | -html ] input.xml >output"; let fn = match !filename with None -> prerr_endline "readme: no input"; exit 1 | Some s -> s in match !want_html, !want_text with true, false -> run convert_to_html fn | false, true -> run convert_to_text fn | _ -> prerr_endline ("readme: Please select exactly one output format") ;; main();;