+ None, sprintf "object not found: %s" (UriManager.string_of_uri uri)
+ | Unix.Unix_error (code, api, param) ->
+ let err = Unix.error_message code in
+ None, "Unix Error (" ^ api ^ "): " ^ err
+ | MatitaMoo.Corrupt_moo fname ->
+ None, sprintf ".moo file '%s' is corrupt (shorter than expected)" fname
+ | MatitaMoo.Checksum_failure fname ->
+ None,
+ sprintf "checksum failed for .moo file '%s', please recompile it'" fname
+ | MatitaMoo.Version_mismatch fname ->
+ None,
+ sprintf
+ (".moo file '%s' has been compiled by a different version of matita, "
+ ^^ "please recompile it")
+ fname
+ | ProofEngineTypes.Fail msg -> None, "Tactic error: " ^ Lazy.force msg
+ | Continuationals.Error s -> None, "Tactical error: " ^ Lazy.force s
+ | CicTypeChecker.TypeCheckerFailure msg ->
+ None, "Type checking error: " ^ Lazy.force msg
+ | CicTypeChecker.AssertFailure msg ->
+ None, "Type checking assertion failed: " ^ Lazy.force msg
+ | MatitaDisambiguator.DisambiguationError (offset,errorll) ->
+ let rec aux n =
+ function
+ [] -> ""
+ | phase::tl ->
+ aux (n+1) tl ^
+ "***** Errors obtained during phase " ^ string_of_int n ^": *****\n"^
+ String.concat "\n\n"
+ (List.map (fun (floc,msg) ->
+ let loc_descr =
+ match floc with
+ None -> ""
+ | Some floc ->
+ let (x, y) = HExtlib.loc_of_floc floc in
+ sprintf " at %d-%d" (x+offset) (y+offset)
+ in
+ "*Error" ^ loc_descr ^ ": " ^ Lazy.force msg) phase) ^
+ "\n\n\n" in
+ let loc =
+ match errorll with
+ ((Some floc,_)::_)::_ ->
+ let (x, y) = HExtlib.loc_of_floc floc in
+ let x = x + offset in
+ let y = y + offset in
+ let flocb,floce = floc in
+ let floc =
+ {flocb with Lexing.pos_cnum = x}, {floce with Lexing.pos_cnum = y}
+ in
+ Some floc
+ | _ -> None
+ in
+ loc,
+ "********** DISAMBIGUATION ERRORS: **********\n" ^
+ aux 1 errorll
+ | exn -> None, "Uncaught exception: " ^ Printexc.to_string exn