+type t
+
+external load : Unix.file_descr -> bool -> t = "caml_grammar_load"
+
+let load filename bp =
+ let fd = Unix.openfile filename [ Unix.O_RDONLY ] 0o600 in
+ let g =
+ try load fd bp with
+ | e -> (Unix.close fd; raise e)
+ in
+ Unix.close fd;
+ g
+