generic Syntax.pretty/string_of operations;
authorwenzelm
Tue, 09 Oct 2007 00:20:21 +0200
changeset 24921 708b2f887a42
parent 24920 2a45e400fdad
child 24922 577ec55380d8
generic Syntax.pretty/string_of operations; existing pretty_term = Syntax.pretty_term o ProofContext.init etc.; removed pretty_classrel/arity (cf. Syntax/syntax.ML);
src/Pure/sign.ML
--- a/src/Pure/sign.ML	Tue Oct 09 00:20:13 2007 +0200
+++ b/src/Pure/sign.ML	Tue Oct 09 00:20:21 2007 +0200
@@ -114,17 +114,12 @@
   val intern_term: theory -> term -> term
   val extern_term: (string -> xstring) -> theory -> term -> term
   val intern_tycons: theory -> typ -> typ
-  val pretty_term': Proof.context -> Syntax.syntax -> (string -> xstring) -> term -> Pretty.T
   val pretty_term: theory -> term -> Pretty.T
   val pretty_typ: theory -> typ -> Pretty.T
   val pretty_sort: theory -> sort -> Pretty.T
-  val pretty_classrel: theory -> class list -> Pretty.T
-  val pretty_arity: theory -> arity -> Pretty.T
   val string_of_term: theory -> term -> string
   val string_of_typ: theory -> typ -> string
   val string_of_sort: theory -> sort -> string
-  val string_of_classrel: theory -> class list -> string
-  val string_of_arity: theory -> arity -> string
   val pp: theory -> Pretty.pp
   val arity_number: theory -> string -> int
   val arity_sorts: theory -> string -> sort -> sort list
@@ -354,39 +349,21 @@
 
 (** pretty printing of terms, types etc. **)
 
-fun pretty_term' ctxt syn ext t =
-  let val curried = Context.exists_name Context.CPureN (ProofContext.theory_of ctxt)
-  in Syntax.pretty_term ext ctxt syn curried t end;
-
-fun pretty_term thy t =
-  pretty_term' (ProofContext.init thy) (syn_of thy) (Consts.extern (consts_of thy))
-    (extern_term (Consts.extern_early (consts_of thy)) thy t);
+val pretty_term = Syntax.pretty_term o ProofContext.init;
+val pretty_typ = Syntax.pretty_typ o ProofContext.init;
+val pretty_sort = Syntax.pretty_sort o ProofContext.init;
 
-fun pretty_typ thy T =
-  Syntax.pretty_typ (ProofContext.init thy) (syn_of thy) (extern_typ thy T);
-
-fun pretty_sort thy S =
-  Syntax.pretty_sort (ProofContext.init thy) (syn_of thy) (extern_sort thy S);
-
-fun pretty_classrel thy cs = Pretty.block (flat
-  (separate [Pretty.str " <", Pretty.brk 1] (map (single o pretty_sort thy o single) cs)));
+val string_of_term = Syntax.string_of_term o ProofContext.init;
+val string_of_typ = Syntax.string_of_typ o ProofContext.init;
+val string_of_sort = Syntax.string_of_sort o ProofContext.init;
 
-fun pretty_arity thy (a, Ss, S) =
-  let
-    val a' = extern_type thy a;
-    val dom =
-      if null Ss then []
-      else [Pretty.list "(" ")" (map (pretty_sort thy) Ss), Pretty.brk 1];
-  in Pretty.block ([Pretty.str (a' ^ " ::"), Pretty.brk 1] @ dom @ [pretty_sort thy S]) end;
-
-val string_of_term = Pretty.string_of oo pretty_term;
-val string_of_typ = Pretty.string_of oo pretty_typ;
-val string_of_sort = Pretty.string_of oo pretty_sort;
-val string_of_classrel = Pretty.string_of oo pretty_classrel;
-val string_of_arity = Pretty.string_of oo pretty_arity;
-
-fun pp thy = Pretty.pp (pretty_term thy, pretty_typ thy, pretty_sort thy,
-  pretty_classrel thy, pretty_arity thy);
+(*pp operations -- deferred evaluation*)
+fun pp thy = Pretty.pp
+ (fn x => pretty_term thy x,
+  fn x => pretty_typ thy x,
+  fn x => pretty_sort thy x,
+  fn x => Syntax.pretty_classrel (ProofContext.init thy) x,
+  fn x => Syntax.pretty_arity (ProofContext.init thy) x);