let parse_file file =
  let ic = open_in file in
  let lexbuf = Lexing.from_channel ic in
  try let p = parse lexbuf in close_in ic; p
  with e -> close_in ic; raise e