Printf.sprintf "MatitaDep v%s\nUsage: matitadep [options] file...\nOptions:"
BuildTimeConf.version
-module TA = TacticAst
+module TA = GrafiteAst
module U = UriManager
let deps = Hashtbl.create (Array.length Sys.argv)
;;
let main () =
+ Helm_registry.load_from BuildTimeConf.matita_conf;
+ CicNotation.load_notation BuildTimeConf.core_notation_script;
let files = ref [] in
Arg.parse arg_spec (add_l files) usage;
List.iter (fun file ->
let ic = open_in file in
- let stms =
- try
- CicTextualParser2.parse_statements (Stream.of_channel ic)
- with
- (CicTextualParser2.Parse_error _) as exc ->
- prerr_endline ("Unable to parse: " ^ file);
- prerr_endline (MatitaExcPp.to_string exc);
- exit 1
- in
- close_in ic;
- List.iter
- (function
- | TA.Executable (_, TA.Command (_, TA.Set (_, "baseuri", uri))) ->
- let uri = MatitaMisc.strip_trailing_slash uri in
- baseuri := (uri, file) :: !baseuri
- | TA.Executable (_, TA.Command
- (_, TA.Alias (_, TA.Ident_alias(_, uri)))) ->
- Hashtbl.add aliases file uri
- | TA.Executable (_, TA.Command (_, TA.Include (_, path))) ->
- Hashtbl.add deps file (find path)
- | _ -> ())
- stms;
+ let istream = Stream.of_channel ic in
+ (try
+ while true do
+ match GrafiteParser.parse_statement istream with
+ | TA.Executable (_, TA.Command (_, TA.Set (_, "baseuri", uri))) ->
+ let uri = MatitaMisc.strip_trailing_slash uri in
+ baseuri := (uri, file) :: !baseuri
+ | TA.Executable (_, TA.Command
+ (_, TA.Alias (_, TA.Ident_alias(_, uri)))) ->
+ Hashtbl.add aliases file uri
+ | TA.Executable (_, TA.Command (_, TA.Include (_, path))) ->
+ Hashtbl.add deps file (find path)
+ | _ -> ()
+ done
+ with
+ | CicNotationParser.Parse_error _ as exn ->
+ prerr_endline ("Unable to parse: " ^ file);
+ prerr_endline (MatitaExcPp.to_string exn);
+ exit 1
+ | End_of_file -> close_in ic);
Hashtbl.iter
(fun file alias ->
let dep = resolve alias in
match dep with
| None -> ()
| Some d -> Hashtbl.add deps file d)
- aliases;)
+ aliases)
!files;
List.iter (fun file ->
let deps = Hashtbl.find_all deps file in
!files
;;
+let _ =
+ main ()
-let _ = main ()