]> matita.cs.unibo.it Git - helm.git/blobdiff - components/content_pres/objPp.ml
;auto fixed
[helm.git] / components / content_pres / objPp.ml
index 1eb47dbabb5a899137e5e352871193112cfb378e..68badf3242e3514b406c2deb76cf551bc5720061 100644 (file)
  * http://helm.cs.unibo.it/
  *)
 
-let obj_to_string n obj =
+let remove_closed_substs s =
+    Pcre.replace ~pat:"{...}" ~templ:"" s
+
+let term2pres n ids_to_inner_sorts annterm = 
+   let ast, ids_to_uris = 
+      TermAcicContent.ast_of_acic ids_to_inner_sorts annterm
+   in
+   let bobj =
+      CicNotationPres.box_of_mpres (
+         CicNotationPres.render ids_to_uris (TermContentPres.pp_ast ast)
+      )
+   in
+   let render = function _::x::_ -> x | _ -> assert false in
+   let mpres = CicNotationPres.mpres_of_box bobj in
+   let s = BoxPp.render_to_string render n mpres in
+   remove_closed_substs s
+
+let obj_to_string n style prefix obj =
   let aobj,_,_,ids_to_inner_sorts,ids_to_inner_types,_,_ = Cic2acic.acic_object_of_cic_object obj in
-  let cobj = Acic2content.annobj2content ids_to_inner_sorts ids_to_inner_types aobj in
-  let bobj = Content2pres.content2pres ids_to_inner_sorts cobj in
-  BoxPp.render_to_string (function _::x::_ -> x | _ -> assert false) n (CicNotationPres.mpres_of_box bobj)
+  match style with
+     | GrafiteAst.Declarative ->
+        let cobj = Acic2content.annobj2content ids_to_inner_sorts ids_to_inner_types aobj in
+        let bobj = Content2pres.content2pres ids_to_inner_sorts cobj in
+        remove_closed_substs ("\n\n" ^
+          BoxPp.render_to_string (function _::x::_ -> x | _ -> assert false) n (CicNotationPres.mpres_of_box bobj)
+       )
+     | GrafiteAst.Procedural ->
+        let term_pp = term2pres (n - 8) ids_to_inner_sorts in
+        let lazy_term_pp = term_pp in
+        let obj_pp = CicNotationPp.pp_obj term_pp in
+        let aux = GrafiteAstPp.pp_statement ~term_pp ~lazy_term_pp ~obj_pp in
+        let script = Acic2Procedural.acic2procedural 
+          ~ids_to_inner_sorts ~ids_to_inner_types prefix aobj in
+       "\n\n" ^ String.concat "" (List.map aux script)