4 let deps = Hashtbl.create (Array.length Sys.argv)
6 let aliases = Hashtbl.create (Array.length Sys.argv)
9 let uri_of_alias = function
10 | Ident_alias (_, uri)
11 | Symbol_alias (_, _, uri)
12 | Number_alias (_, uri) -> uri
16 U.buri_of_uri (U.uri_of_string alias)
20 Some (snd(List.find (fun (u, f) -> u = (buri alias)) !baseuri))
24 (*** TODO MANCANO LE URI VERBATIM DENTRO GLI AST DEI TERMINI ****)
27 for i = 1 to Array.length Sys.argv - 1 do
28 let file = Sys.argv.(i) in
29 let ic = open_in file in
30 let stms = CicTextualParser2.parse_statements (Stream.of_channel ic) in
35 | TA.Executable (_, TA.Command (_, TA.Set (_, "baseuri", uri))) ->
36 let uri = MatitaMisc.strip_trailing_slash uri in
37 baseuri := (uri, file) :: !baseuri
38 | TA.Executable (_, TA.Command
39 (_, TA.Alias (_, TA.Ident_alias(_, uri)))) ->
40 Hashtbl.add aliases file uri
46 let dep = resolve alias in
49 | Some d -> Hashtbl.add deps file d)
52 for i = 1 to Array.length Sys.argv - 1 do
53 let file = Sys.argv.(i) in
54 let deps = Hashtbl.find_all deps file in
55 let deps = List.fast_sort Pervasives.compare deps in
56 let deps = MatitaMisc.list_uniq deps in
57 let deps = file :: deps in
58 Printf.printf "%s: %s\n" (MatitaMisc.obj_file_of_script file)
59 (String.concat " " deps)