From: Claudio Sacerdoti Coen Date: Sun, 17 May 2009 19:11:41 +0000 (+0000) Subject: efficiency improvement (buffers are now used everywhere) X-Git-Tag: make_still_working~3972 X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=commitdiff_plain;h=be88425efab1997c964137854e2f76aac6ebf877;p=helm.git efficiency improvement (buffers are now used everywhere) --- diff --git a/helm/software/components/ng_kernel/nCicPp.ml b/helm/software/components/ng_kernel/nCicPp.ml index bd5b7f206..27b46431e 100644 --- a/helm/software/components/ng_kernel/nCicPp.ml +++ b/helm/software/components/ng_kernel/nCicPp.ml @@ -210,11 +210,12 @@ let rec ppcontext ~formatter ?(sep="\n") ~subst ~metasenv = function let rec ppmetasenv ~formatter ~subst metasenv = function | [] -> () | (i,(name, ctx, ty)) :: tl -> + F.fprintf formatter "@["; let name = match name with Some n -> "("^n^")" | _ -> "" in ppcontext ~formatter ~sep:"; " ~subst ~metasenv ctx; - F.fprintf formatter " ⊢ ?%d%s : " i name; + F.fprintf formatter "@;⊢@;?%d%s :@;" i name; ppterm ~formatter ~metasenv ~subst ~context:ctx ty; - F.fprintf formatter "\n"; + F.fprintf formatter "@]@\n"; ppmetasenv ~formatter ~subst metasenv tl ;; @@ -248,39 +249,45 @@ let ppobj ~formatter (u,_,metasenv, subst, o) = F.fprintf formatter "\n"; match o with | NCic.Fixpoint (b, fl, _) -> - F.fprintf formatter "{%s}\n" (NUri.string_of_uri u); - F.fprintf formatter "%s" (if b then "let rec " else "let corec "); - HExtlib.list_iter_sep ~sep:(fun ()->F.fprintf formatter "\nand ") + F.fprintf formatter "{%s}@\n@[" (NUri.string_of_uri u); + F.fprintf formatter "@[%s"(if b then "let rec " else "let corec "); + HExtlib.list_iter_sep + ~sep:(fun () -> F.fprintf formatter "@\n@[and ") (fun (_,name,n,ty,bo) -> - F.fprintf formatter "%s on %d : " name n; + F.fprintf formatter "%s on %d :@;" name n; ppterm ~formatter ~metasenv ~subst ~context:[] ty; - F.fprintf formatter " :=\n"; - ppterm ~formatter ~metasenv ~subst ~context:[] ~inside_fix:true bo) fl + F.fprintf formatter "@]@;@[:=@;"; + ppterm ~formatter ~metasenv ~subst ~context:[] ~inside_fix:true bo; + F.fprintf formatter "@]") fl; + F.fprintf formatter "@]" | NCic.Inductive (b, leftno,tyl, _) -> - F.fprintf formatter "{%s} with %d fixed params\n%s" + F.fprintf formatter "{%s} with %d fixed params@\n@[@[%s" (NUri.string_of_uri u) leftno (if b then "inductive " else "coinductive "); - HExtlib.list_iter_sep ~sep:(fun ()->F.fprintf formatter "\nand ") + HExtlib.list_iter_sep + ~sep:(fun () -> F.fprintf formatter "@\n@[and ") (fun (_,name,ty,cl) -> - F.fprintf formatter "%s: " name; + F.fprintf formatter "%s:@;" name; ppterm ~formatter ~metasenv ~subst ~context:[] ty; - F.fprintf formatter " :=\n"; - HExtlib.list_iter_sep ~sep:(fun () -> F.fprintf formatter "\n") + F.fprintf formatter "@]@;@[:=@;"; + HExtlib.list_iter_sep ~sep:(fun () -> F.fprintf formatter "@;") (fun (_,name,ty) -> - F.fprintf formatter " | %s: " name; - ppterm ~formatter ~metasenv ~subst ~context:[] ty) - cl - ) tyl + F.fprintf formatter "| %s: " name; + ppterm ~formatter ~metasenv ~subst ~context:[] ty;) + cl; + F.fprintf formatter "@]" + ) tyl ; + F.fprintf formatter "@]" | NCic.Constant (_,name,None,ty, _) -> - F.fprintf formatter "{%s}\naxiom %s : " (NUri.string_of_uri u) name; + F.fprintf formatter "{%s}@\n@[axiom %s :@;" (NUri.string_of_uri u) name; ppterm ~formatter ~metasenv ~subst ~context:[] ty; - F.fprintf formatter "\n" + F.fprintf formatter "@]@\n" | NCic.Constant (_,name,Some bo,ty, _) -> - F.fprintf formatter "{%s}\ndefinition %s : " (NUri.string_of_uri u) name; + F.fprintf formatter "{%s}@\n@[@[definition %s :@;" (NUri.string_of_uri u) name; ppterm ~formatter ~metasenv ~subst ~context:[] ty; - F.fprintf formatter " := \n"; + F.fprintf formatter "@]@;@[:=@;"; ppterm ~formatter ~metasenv ~subst ~context:[] bo; - F.fprintf formatter "\n" + F.fprintf formatter "@]@\n@]" ;; let ppterm ~context ~subst ~metasenv ?margin ?inside_fix t =