X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fmatita%2Fmatitadep.ml;h=966b02b09d49b7b246fc1326ff6f87a484de0a4f;hb=b05dceab1903f9d15f214a9ddeaf791cd594e215;hp=df6cff2734598cb78fe9c16e9a795db538aaf141;hpb=0d681e06c6ced0be7f9dbce417684b082229745a;p=helm.git diff --git a/helm/matita/matitadep.ml b/helm/matita/matitadep.ml index df6cff273..966b02b09 100644 --- a/helm/matita/matitadep.ml +++ b/helm/matita/matitadep.ml @@ -27,20 +27,28 @@ let main () = for i = 1 to Array.length Sys.argv - 1 do let file = Sys.argv.(i) in let ic = open_in file in - let stms = CicTextualParser2.parse_statements (Stream.of_channel ic) in - close_in ic; - let stms = - 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 - | _ -> ()) - stms + 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 path + | _ -> ()) + stms; Hashtbl.iter (fun file alias -> let dep = resolve alias in @@ -54,6 +62,9 @@ let main () = let deps = Hashtbl.find_all deps file in let deps = List.fast_sort Pervasives.compare deps in let deps = MatitaMisc.list_uniq deps in + let deps = + List.map (fun x -> Pcre.replace ~pat:"ma$" ~templ:"moo" x) deps + in let deps = file :: deps in Printf.printf "%s: %s\n" (MatitaMisc.obj_file_of_script file) (String.concat " " deps)