blob: c90cfc9773c45af736a05439ae15f582c12eaa9a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
(* Load interface definitions from a directory into a reference tree *)
let load_interface_definitions dir =
let open Reference_tree in
let relative_paths = FileUtil.ls dir in
let absolute_paths =
try Ok (List.map Util.absolute_path relative_paths)
with Sys_error no_dir_msg -> Error no_dir_msg
in
let load_aux tree file =
load_from_xml tree file
in
try begin match absolute_paths with
| Ok paths -> Ok (List.fold_left load_aux default paths)
| Error msg -> Error msg end
with Bad_interface_definition msg -> Error msg
|