dump_moo.cmx: buildTimeConf.cmx
lablGraphviz.cmo: lablGraphviz.cmi
lablGraphviz.cmx: lablGraphviz.cmi
-matitaAutoGui.cmo: matitaGeneratedGui.cmo applyTransformation.cmi \
- matitaAutoGui.cmi
-matitaAutoGui.cmx: matitaGeneratedGui.cmx applyTransformation.cmx \
- matitaAutoGui.cmi
+matitaAutoGui.cmo: matitaGtkMisc.cmi matitaGeneratedGui.cmo buildTimeConf.cmo \
+ applyTransformation.cmi matitaAutoGui.cmi
+matitaAutoGui.cmx: matitaGtkMisc.cmx matitaGeneratedGui.cmx buildTimeConf.cmx \
+ applyTransformation.cmx matitaAutoGui.cmi
matitaclean.cmo: matitaMisc.cmi matitaInit.cmi matitaclean.cmi
matitaclean.cmx: matitaMisc.cmx matitaInit.cmx matitaclean.cmi
matitacLib.cmo: matitaExcPp.cmi matitaEngine.cmi buildTimeConf.cmo \
matitaMisc.cmi matitaInit.cmi
matitac.cmx: matitadep.cmx matitaclean.cmx matitacLib.cmx matitaWiki.cmx \
matitaMisc.cmx matitaInit.cmx
-matitadep.cmo: matitaInit.cmi matitadep.cmi
-matitadep.cmx: matitaInit.cmx matitadep.cmi
+matitadep.cmo: matitaMisc.cmi matitaInit.cmi matitadep.cmi
+matitadep.cmx: matitaMisc.cmx matitaInit.cmx matitadep.cmi
matitaEngine.cmo: matitaEngine.cmi
matitaEngine.cmx: matitaEngine.cmi
matitaExcPp.cmo: matitaEngine.cmi matitaExcPp.cmi
matitaGui.cmx: matitaTypes.cmx matitaScript.cmx matitaMisc.cmx \
matitaMathView.cmx matitaGtkMisc.cmx matitaGeneratedGui.cmx \
matitaExcPp.cmx matitaAutoGui.cmx buildTimeConf.cmx matitaGui.cmi
-matitaInit.cmo: matitacLib.cmi matitaExcPp.cmi matitaEngine.cmi \
- buildTimeConf.cmo matitaInit.cmi
-matitaInit.cmx: matitacLib.cmx matitaExcPp.cmx matitaEngine.cmx \
- buildTimeConf.cmx matitaInit.cmi
+matitaInit.cmo: matitaExcPp.cmi buildTimeConf.cmo matitaInit.cmi
+matitaInit.cmx: matitaExcPp.cmx buildTimeConf.cmx matitaInit.cmi
matitaMathView.cmo: matitaTypes.cmi matitaScript.cmi matitaMisc.cmi \
matitaGuiTypes.cmi matitaGtkMisc.cmi matitaExcPp.cmi lablGraphviz.cmi \
buildTimeConf.cmo applyTransformation.cmi matitaMathView.cmi
dump_moo.cmx: buildTimeConf.cmx
lablGraphviz.cmo: lablGraphviz.cmi
lablGraphviz.cmx: lablGraphviz.cmi
-matitaAutoGui.cmo: matitaGeneratedGui.cmx buildTimeConf.cmx \
+matitaAutoGui.cmo: matitaGtkMisc.cmi matitaGeneratedGui.cmx buildTimeConf.cmx \
applyTransformation.cmi matitaAutoGui.cmi
-matitaAutoGui.cmx: matitaGeneratedGui.cmx buildTimeConf.cmx \
+matitaAutoGui.cmx: matitaGtkMisc.cmx matitaGeneratedGui.cmx buildTimeConf.cmx \
applyTransformation.cmx matitaAutoGui.cmi
matitaclean.cmo: matitaMisc.cmi matitaInit.cmi matitaclean.cmi
matitaclean.cmx: matitaMisc.cmx matitaInit.cmx matitaclean.cmi
(* $Id$ *)
-module G = GrafiteAst
+module UM = UriManager
+module C = Cic
+module Un = CicUniv
+module E = CicEnvironment
+module TC = CicTypeChecker
+module G = GrafiteAst
let mpres_document pres_box =
Xml.add_xml_declaration (CicNotationPres.print_box pres_box)
Cic2acic.acic_object_of_cic_object obj
in
aobj, ids_to_inner_sorts, ids_to_inner_types
- with e ->
- let msg = "txt_of_cic_object: " ^ Printexc.to_string e in
- failwith msg
+ with
+ | E.Object_not_found uri ->
+ let msg = "txt_of_cic_object: object not found: " ^ UM.string_of_uri uri in
+ failwith msg
+ | e ->
+ let msg = "txt_of_cic_object: " ^ Printexc.to_string e in
+ failwith msg
in
match style with
| G.Declarative ->
(CicNotationPres.mpres_of_box bobj)
)
| G.Procedural depth ->
- let obj = ProceduralOptimizer.optimize_obj obj in
+ let obj = ProceduralOptimizer.optimize_obj obj in
let aobj, ids_to_inner_sorts, ids_to_inner_types = get_aobj obj in
let term_pp = term2pres ~map_unicode_to_tex (n - 8) ids_to_inner_sorts in
let lazy_term_pp = term_pp in
in
"\n\n" ^ String.concat "" (List.map aux script)
+let cic_prefix = Str.regexp_string "cic:/"
+
+let matita_prefix = Str.regexp_string "cic:/matita/"
+
+let discharge_uri style uri =
+ let template = match style with
+ | G.Declarative -> "cic:/matita/declarative/"
+ | G.Procedural _ -> "cic:/matita/procedural/"
+ in
+ let s = UM.string_of_uri uri in
+ if Str.string_match matita_prefix s 0 then uri else
+ let s = Str.replace_first cic_prefix template s in
+ UM.uri_of_string s
+
let txt_of_inline_uri ~map_unicode_to_tex style ?flavour prefix suri =
let print_exc = function
| ProofEngineHelpers.Bad_pattern s as e ->
let dbd = LibraryDb.instance () in
let sorted_uris = MetadataDeps.sorted_uris_of_baseuri ~dbd suri in
let map uri =
- try
- txt_of_cic_object
- ~map_unicode_to_tex 78 style ?flavour prefix
- (fst (CicEnvironment.get_obj CicUniv.empty_ugraph uri))
+ try
+(* FG: for now the explicit variables must be discharged *)
+ let do_it obj = txt_of_cic_object ~map_unicode_to_tex 78 style ?flavour prefix obj in
+ match CicDischarge.discharge_uri (discharge_uri style) uri with
+ | C.InductiveDefinition _ as obj', false ->
+ let uri' = discharge_uri style uri in
+ TC.typecheck_obj uri' obj';
+ (* we loose the sharing in this case *)
+ let obj'', _ = E.get_obj Un.default_ugraph uri' in
+ let s = do_it obj'' in begin E.remove_obj uri'; s end
+ | obj, _ -> do_it obj
with
| e ->
let msg =
Printf.sprintf
- "ERRORE IN STAMPA DI %s\nEXCEPTION: %s"
- (UriManager.string_of_uri uri) (print_exc e)
+ "ERROR IN THE GENERATION OF %s\nEXCEPTION: %s"
+ (UM.string_of_uri uri) (print_exc e)
in
Printf.eprintf "%s\n" msg;
GrafiteTypes.command_error msg