X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FgTopLevel%2FtermViewer.ml;h=192bbb413b6d203eddfc48c1faa06d3c22670af8;hb=f7b2e35a7bdadb4fdf0e640428e694703ddf67a5;hp=9a9c9c9b884ae941d0d976dcf20cb49735b39f1f;hpb=70f855932359e26ca89deb11c22f9c9d26154827;p=helm.git diff --git a/helm/gTopLevel/termViewer.ml b/helm/gTopLevel/termViewer.ml index 9a9c9c9b8..192bbb413 100644 --- a/helm/gTopLevel/termViewer.ml +++ b/helm/gTopLevel/termViewer.ml @@ -33,6 +33,8 @@ (* *) (******************************************************************************) +let use_stylesheets = ref true;;(* false performs the transformations in OCaml*) + (* List utility functions *) exception Skip;; @@ -194,15 +196,62 @@ class proof_viewer obj = = Cic2acic.acic_object_of_cic_object currentproof in - let mml = - ApplyStylesheets.mml_of_cic_object - ~explode_all:true uri acic ids_to_inner_sorts ids_to_inner_types - in - self#load_doc ~dom:mml ; - current_infos <- - Some - (ids_to_terms,ids_to_father_ids,ids_to_conjectures,ids_to_hypotheses) ; - (acic, ids_to_inner_types, ids_to_inner_sorts) + if !use_stylesheets then + let mml = + ApplyStylesheets.mml_of_cic_object + ~explode_all:true uri acic ids_to_inner_sorts ids_to_inner_types + in + self#load_doc ~dom:mml ; + current_infos <- + Some + (ids_to_terms,ids_to_father_ids,ids_to_conjectures,ids_to_hypotheses) ; + else + (match acic with + Cic.ACurrentProof (id,idbody,n,conjectures,bo,ty,params) -> + let time1 = Sys.time () in + let content = + Cic2content.acic2content + (ref 0) ~name:(Some "prova") ~ids_to_inner_sorts + ~ids_to_inner_types bo in + let content2pres = + (Content2pres.proof2pres + (function p -> + (Cexpr2pres.cexpr2pres_charcount + (Content_expressions.acic2cexpr ids_to_inner_sorts p)))) in + let pres = content2pres content in + let time2 = Sys.time () in + (* prerr_endline ("Fine trasformazione:" ^ (string_of_float (time2 -. time1))); *) + let xmlpres = + Xml.xml_nempty "math" + ["xmlns","http://www.w3.org/1998/Math/MathML" ; + "xmlns:helm","http://www.cs.unibo.it/helm" ; + "xmlns:xlink","http://www.w3.org/1999/xlink" + ] (Mpresentation.print_mpres pres) in + let time25 = Sys.time () in + (* + prerr_endline ("FINE printing to stream:" ^ (string_of_float (time25 -. time2))); + Xml.pp xmlpres (Some "tmp"); + let time3 = Sys.time () in + prerr_endline ("FINE valutazione e printing dello stream:" ^ (string_of_float (time3 -. time25))); + *) + (try + (* prerr_endline "(******** INIZIO DOM **********)"; *) + let mml = Xml2Gdomexmath.document_of_xml Misc.domImpl xmlpres in + let time3 = Sys.time () in + (* ignore (Misc.domImpl#saveDocumentToFile mml "tmp1" ()); *) + (* prerr_endline "(******** FINE DOM **********)"; *) + self#load_doc ~dom:mml; + prerr_endline ("Fine loading:" ^ (string_of_float (time3 -. time2))) + (* + self#load_uri "tmp"; + let time4 = Sys.time () in + prerr_endline + ("Fine loading:" ^ (string_of_float (time4 -. time3))) + *) + with (GdomeInit.DOMException (_,s)) as e -> + prerr_endline s; raise e) + | _ -> assert false); + (acic, ids_to_inner_types, ids_to_inner_sorts) end ;; @@ -228,3 +277,7 @@ let proof_viewer ?adjustmenth ?adjustmentv ?font_size ?font_manager end; mathview ;; + +let _ = + Cexpr2pres_hashtbl.init Cexpr2pres.cexpr2pres Cexpr2pres.cexpr2pres_charcount +;;