clarified signature (again, reverting ec1023a5c54c);
authorwenzelm
Wed, 16 Oct 2024 21:41:05 +0200
changeset 81177 137ea3d464be
parent 81176 c0522b2d3df6
child 81178 8e7bd0566759
clarified signature (again, reverting ec1023a5c54c);
src/Pure/Syntax/printer.ML
src/Pure/Syntax/syntax_phases.ML
--- a/src/Pure/Syntax/printer.ML	Wed Oct 16 21:22:37 2024 +0200
+++ b/src/Pure/Syntax/printer.ML	Wed Oct 16 21:41:05 2024 +0200
@@ -33,16 +33,12 @@
   val update_prtabs: string -> Syntax_Ext.xprod list -> prtabs -> prtabs
   val remove_prtabs: string -> Syntax_Ext.xprod list -> prtabs -> prtabs
   val merge_prtabs: prtabs * prtabs -> prtabs
-  val pretty_term_ast: bool -> Proof.context -> prtab list ->
+  val pretty: {type_mode: bool, curried: bool} -> Proof.context -> prtab list ->
     (string -> Proof.context -> Ast.ast list -> Ast.ast) ->
     (string -> Ast.ast list -> Pretty.T option) ->
     ((string -> Markup.T list) * (string -> string)) ->
     Ast.ast -> Pretty.T list
-  val pretty_typ_ast: Proof.context -> prtab list ->
-    (string -> Proof.context -> Ast.ast list -> Ast.ast) ->
-    (string -> Ast.ast list -> Pretty.T option) ->
-    ((string -> Markup.T list) * (string -> string)) ->
-    Ast.ast -> Pretty.T list
+  val type_mode_flags: {type_mode: bool, curried: bool}
 end;
 
 structure Printer: PRINTER =
@@ -225,10 +221,10 @@
 
 in
 
-fun pretty ctxt prtabs trf markup_trans (markup, extern) =
+val type_mode_flags = {type_mode = true, curried = false};
+
+fun pretty {type_mode, curried} ctxt prtabs trf markup_trans (markup, extern) =
   let
-    val type_mode = Config.get ctxt pretty_type_mode;
-    val curried = Config.get ctxt pretty_curried;
     val show_brackets = Config.get ctxt show_brackets;
 
     val application =
@@ -257,10 +253,8 @@
     and main_type p ast =
       if type_mode then main p ast
       else
-        (ctxt
-          |> Config.put pretty_type_mode true
-          |> Config.put pretty_priority p
-          |> pretty) prtabs trf markup_trans (markup, extern) ast
+        pretty type_mode_flags (Config.put pretty_priority p ctxt)
+          prtabs trf markup_trans (markup, extern) ast
 
     and combination p c a args constraint =
       (case translation p a args of
@@ -323,24 +317,6 @@
 
 end;
 
-
-(* pretty_term_ast *)
-
-fun pretty_term_ast curried ctxt prtabs trf markup_trans markup_extern ast =
-  let val ctxt' = ctxt
-    |> Config.put pretty_type_mode false
-    |> Config.put pretty_curried curried
-  in pretty ctxt' prtabs trf markup_trans markup_extern ast end;
-
-
-(* pretty_typ_ast *)
-
-fun pretty_typ_ast ctxt prtabs trf markup_trans markup_extern ast =
-  let val ctxt' = ctxt
-    |> Config.put pretty_type_mode true
-    |> Config.put pretty_curried false
-  in pretty ctxt' prtabs trf markup_trans markup_extern ast end;
-
 end;
 
 structure Basic_Printer: BASIC_PRINTER = Printer;
--- a/src/Pure/Syntax/syntax_phases.ML	Wed Oct 16 21:22:37 2024 +0200
+++ b/src/Pure/Syntax/syntax_phases.ML	Wed Oct 16 21:41:05 2024 +0200
@@ -762,6 +762,8 @@
 val typing_elem = YXML.output_markup_elem Markup.typing;
 val sorting_elem = YXML.output_markup_elem Markup.sorting;
 
+val pretty_type_mode = Printer.pretty Printer.type_mode_flags;
+
 fun unparse_t t_to_ast prt_t markup ctxt t =
   let
     val show_markup = Config.get ctxt show_markup;
@@ -804,7 +806,7 @@
       then SOME (markup_ast false ty s) else NONE
 
     and pretty_typ_ast m ast = ast
-      |> Printer.pretty_typ_ast ctxt prtabs trf markup_trans markup_extern
+      |> pretty_type_mode ctxt prtabs trf markup_trans markup_extern
       |> Pretty.markup m
 
     and pretty_ast m ast = ast
@@ -835,14 +837,14 @@
 
 in
 
-val unparse_sort = unparse_t sort_to_ast Printer.pretty_typ_ast (Markup.language_sort false);
-val unparse_typ = unparse_t typ_to_ast Printer.pretty_typ_ast (Markup.language_type false);
+val unparse_sort = unparse_t sort_to_ast pretty_type_mode (Markup.language_sort false);
+val unparse_typ = unparse_t typ_to_ast pretty_type_mode (Markup.language_type false);
 
 fun unparse_term ctxt =
   let
     val thy = Proof_Context.theory_of ctxt;
-    val curried = not (Pure_Thy.old_appl_syntax thy);
-  in unparse_t term_to_ast (Printer.pretty_term_ast curried) (Markup.language_term false) ctxt end;
+    val term_mode = {type_mode = false, curried = not (Pure_Thy.old_appl_syntax thy)};
+  in unparse_t term_to_ast (Printer.pretty term_mode) (Markup.language_term false) ctxt end;
 
 end;