let main () =
Rep_args.parse ();
match !Rep_args.file with
None ->
prerr_endline Rep_messages.usage ;
exit 1
| Some file ->
let report =
if !Rep_args.binary_input then
Rep_misc.value_of_file file
else
Rep_io.load_report file
in
if !Rep_args.generate_code then
(
let ml_file =
match !Rep_args.output_file with
None ->
(try Filename.chop_extension file
with Invalid_argument _ -> file)^".ml"
| Some f -> f
in
Rep_gen_code.gen_code ml_file report
)
else
match !Rep_args.output_file with
None ->
failwith "No output file given to save."
| Some f ->
if !Rep_args.binary_output then
Rep_misc.file_of_value f report
else
Rep_io.store_report f report