X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=inline;f=helm%2Fsoftware%2Fcomponents%2Fcontent_pres%2FobjPp.ml;h=aa2e3a6b8f7090955915816164cf60a787dfb1b2;hb=b9185037db1db1c73031ce18eb943bdd7e170cdc;hp=1eb47dbabb5a899137e5e352871193112cfb378e;hpb=bdf989481462c1185c9cbbfdd4b31d13aa4352b3;p=helm.git diff --git a/helm/software/components/content_pres/objPp.ml b/helm/software/components/content_pres/objPp.ml index 1eb47dbab..aa2e3a6b8 100644 --- a/helm/software/components/content_pres/objPp.ml +++ b/helm/software/components/content_pres/objPp.ml @@ -23,8 +23,36 @@ * 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 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 = Content2Procedural.content2procedural ~ids_to_inner_sorts prefix cobj in + "\n\n" ^ String.concat "" (List.map aux script)