X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fmatita%2Fmatita.ml;h=3c543d5c179a1602acb6b17b288d60a11bf0ef5a;hb=06c2b37f3d7d4e14cabeef3b18211e5d12b9b4eb;hp=5fb0cb9061a7a8dfb6da9b9d39c3639be2dbef97;hpb=015263908d9142798bcbddbe4c4d13f71e08c5c3;p=helm.git diff --git a/helm/matita/matita.ml b/helm/matita/matita.ml index 5fb0cb906..3c543d5c1 100644 --- a/helm/matita/matita.ml +++ b/helm/matita/matita.ml @@ -42,6 +42,12 @@ let (get_proof, set_proof, has_proof) = let debug_print = MatitaTypes.debug_print +let save_dom = + let domImpl = lazy (Gdome.domImplementation ()) in + fun ~doc ~dest -> + ignore + ((Lazy.force domImpl)#saveDocumentToFile ~doc ~name:dest ~indent:true ()) + (** {2 Initialization} *) let _ = Helm_registry.load_from "matita.conf.xml" @@ -56,8 +62,11 @@ let disambiguator = () let proof_viewer = let mml_of_cic_object = BuildTimeConf.Transformer.mml_of_cic_object in - MatitaMathView.proof_viewer ~mml_of_cic_object ~show:true - ~packing:(gui#proof#scrolledProof#add) () +(* + let frame = GBin.frame ~packing:(gui#proof#scrolledProof#add) ~show:true () in + MatitaMathView.proof_viewer ~show:true ~packing:(frame#add) () +*) + MatitaMathView.proof_viewer ~show:true ~packing:(gui#proof#scrolledProof#add) () (* let sequent_viewer = let mml_of_cic_sequent = BuildTimeConf.Transformer.mml_of_cic_sequent in @@ -70,28 +79,28 @@ let new_proof (proof: MatitaTypes.proof) = * - ids_to_inner_types, ids_to_inner_sorts handling * - sequent viewer notification *) - let xmldump_observer _ (status, _) = print_endline proof#toString in - ignore (proof#attach_observer ~interested_in:StatefulProofEngine.all_events - xmldump_observer); -(* - let proof_observer _ (status, ()) = -prerr_endline "proof_observer"; - let ((uri_opt, metasenv, bo, ty), _) = status in + let xmldump_observer _ _ = print_endline proof#toString in + let proof_observer _ (status, metadata) = + debug_print "proof_observer"; + let (acic, ids_to_terms, ids_to_father_ids, ids_to_inner_sorts, + ids_to_inner_types, ids_to_conjectures, ids_to_hypotheses) = + metadata + in + let ((uri_opt, _, _, _), _) = status in let uri = MatitaTypes.unopt_uri uri_opt in - (* TODO CSC [] is wrong *) - let proof = Cic.Constant (UriManager.name_of_uri uri,Some bo,ty,[]) in -try - ignore (proof_viewer#load_proof uri proof) -with exn -> -prerr_endline "proof_observer exception:"; -prerr_endline (Printexc.to_string exn); -raise exn - in - let proof_observer_id = - proof#attach_observer ~interested_in:StatefulProofEngine.all_events - proof_observer + debug_print "apply transformation"; + let mathml = + BuildTimeConf.Transformer.mml_of_cic_object + ~explode_all:true uri acic ids_to_inner_sorts ids_to_inner_types + in + if BuildTimeConf.debug then save_dom ~doc:mathml ~dest:"/tmp/matita.xml"; + proof_viewer#load_proof mathml metadata; + debug_print "/proof_observer" in -*) + ignore (proof#attach_observer ~interested_in:StatefulProofEngine.all_events + xmldump_observer); + ignore (proof#attach_observer ~interested_in:StatefulProofEngine.all_events + proof_observer); proof#notify; set_proof (Some proof)