X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=components%2Fcontent_pres%2FobjPp.ml;h=f83b18635e6198fd33f4bdb237ed2a3c76f0bfd7;hb=46bde81a59b45bedd6d859450decfc2263d92d7e;hp=49936861f2b2f8bbd12c0ea19ac1b9cab068e630;hpb=06e2976ca4ef6bdfe14beba14ba538a2479c51a8;p=helm.git diff --git a/components/content_pres/objPp.ml b/components/content_pres/objPp.ml index 49936861f..f83b18635 100644 --- a/components/content_pres/objPp.ml +++ b/components/content_pres/objPp.ml @@ -23,17 +23,43 @@ * http://helm.cs.unibo.it/ *) +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 ~prec:90 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 aobj,_,_,ids_to_inner_sorts,ids_to_inner_types,_,_ = + try Cic2acic.acic_object_of_cic_object obj + with e -> + let msg = "Cic2ACic: " ^ Printexc.to_string e in + failwith msg + in match style with - | GrafiteAst.Declarative -> + | 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 - BoxPp.render_to_string (function _::x::_ -> x | _ -> assert false) n (CicNotationPres.mpres_of_box bobj) - | GrafiteAst.Procedural -> - let term_pp = CicNotationPp.pp_term in - let lazy_term_pp = CicNotationPp.pp_term in - let obj_pp = CicNotationPp.pp_obj in + remove_closed_substs ("\n\n" ^ + BoxPp.render_to_string (function _::x::_ -> x | _ -> assert false) n (CicNotationPres.mpres_of_box bobj) + ) + | GrafiteAst.Procedural depth -> + 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 - String.concat "" (List.map aux script) + let script = Acic2Procedural.acic2procedural + ~ids_to_inner_sorts ~ids_to_inner_types ?depth prefix aobj in + "\n\n" ^ String.concat "" (List.map aux script)