avoid proliferation of language_document reports;
authorwenzelm
Sat, 03 Feb 2018 14:39:17 +0100
changeset 67569 5d71b114e7a3
parent 67568 fc2b303070da
child 67570 c1fe89e9a00b
avoid proliferation of language_document reports; clarified signature;
src/Pure/PIDE/command.ML
src/Pure/Thy/document_antiquotations.ML
src/Pure/Thy/thy_output.ML
src/Pure/pure_syn.ML
--- a/src/Pure/PIDE/command.ML	Sat Feb 03 14:32:12 2018 +0100
+++ b/src/Pure/PIDE/command.ML	Sat Feb 03 14:39:17 2018 +0100
@@ -207,7 +207,8 @@
         check_error (fn () => Thy_Output.check_token_comments ctxt tok))) @
       (span |> maps (fn tok =>
         if Token.kind_of tok = Token.Comment (SOME Comment.Comment) then
-          check_error (fn () => Thy_Output.output_text ctxt {markdown = false} (Token.input_of tok))
+          check_error (fn () =>
+            Thy_Output.output_document ctxt {markdown = false} (Token.input_of tok))
         else [])))
     ();
 
--- a/src/Pure/Thy/document_antiquotations.ML	Sat Feb 03 14:32:12 2018 +0100
+++ b/src/Pure/Thy/document_antiquotations.ML	Sat Feb 03 14:39:17 2018 +0100
@@ -133,7 +133,7 @@
 
 fun control_antiquotation name s1 s2 =
   Thy_Output.antiquotation_raw name (Scan.lift Args.cartouche_input)
-    (fn ctxt => Latex.enclose_block s1 s2 o Thy_Output.output_text ctxt {markdown = false});
+    (fn ctxt => Latex.enclose_block s1 s2 o Thy_Output.output_document ctxt {markdown = false});
 
 in
 
--- a/src/Pure/Thy/thy_output.ML	Sat Feb 03 14:32:12 2018 +0100
+++ b/src/Pure/Thy/thy_output.ML	Sat Feb 03 14:39:17 2018 +0100
@@ -6,7 +6,7 @@
 
 signature THY_OUTPUT =
 sig
-  val output_text: Proof.context -> {markdown: bool} -> Input.source -> Latex.text list
+  val output_document: Proof.context -> {markdown: bool} -> Input.source -> Latex.text list
   val check_comments: Proof.context -> Symbol_Pos.T list -> unit
   val check_token_comments: Proof.context -> Token.T -> unit
   val output_token: Proof.context -> Token.T -> Latex.text list
@@ -39,15 +39,13 @@
 structure Thy_Output: THY_OUTPUT =
 struct
 
-(* output text *)
+(* output document source *)
 
-fun output_text ctxt {markdown} source =
+fun output_document ctxt {markdown} source =
   let
     val pos = Input.pos_of source;
     val syms = Input.source_explode source;
 
-    val _ = Context_Position.report ctxt pos (Markup.language_document (Input.is_delimited source));
-
     val output_antiquotes = maps (Document_Antiquotation.evaluate ctxt);
 
     fun output_line line =
@@ -104,7 +102,7 @@
         val ctxt' = ctxt
           |> Config.put Document_Antiquotation.thy_output_display false;
       in
-        output_text ctxt' {markdown = false} source
+        output_document ctxt' {markdown = false} source
         |> Latex.enclose_body "%\n\\isamarkupcmt{" "%\n}"
       end
   | (SOME Comment.Cancel, _) =>
@@ -192,11 +190,11 @@
   | Basic_Token tok => output_token ctxt tok
   | Markup_Token (cmd, source) =>
       Latex.enclose_body ("%\n\\isamarkup" ^ cmd ^ "{") "%\n}\n"
-        (output_text ctxt {markdown = false} source)
+        (output_document ctxt {markdown = false} source)
   | Markup_Env_Token (cmd, source) =>
-      [Latex.environment_block ("isamarkup" ^ cmd) (output_text ctxt {markdown = true} source)]
+      [Latex.environment_block ("isamarkup" ^ cmd) (output_document ctxt {markdown = true} source)]
   | Raw_Token source =>
-      Latex.string "%\n" :: output_text ctxt {markdown = true} source @ [Latex.string "\n"]);
+      Latex.string "%\n" :: output_document ctxt {markdown = true} source @ [Latex.string "\n"]);
 
 
 (* command spans *)
--- a/src/Pure/pure_syn.ML	Sat Feb 03 14:32:12 2018 +0100
+++ b/src/Pure/pure_syn.ML	Sat Feb 03 14:39:17 2018 +0100
@@ -17,16 +17,22 @@
 
 val semi = Scan.option (Parse.$$$ ";");
 
-fun document_command {markdown} (loc, txt) =
+fun output_document state markdown txt =
+  let
+    val ctxt = Toplevel.presentation_context state;
+    val _ =
+      Context_Position.report ctxt
+        (Input.pos_of txt) (Markup.language_document (Input.is_delimited txt));
+  in Thy_Output.output_document ctxt markdown txt end;
+
+fun document_command markdown (loc, txt) =
   Toplevel.keep (fn state =>
     (case loc of
-      NONE =>
-        ignore (Thy_Output.output_text
-          (Toplevel.presentation_context state) {markdown = markdown} txt)
+      NONE => ignore (output_document state markdown txt)
     | SOME (_, pos) =>
         error ("Illegal target specification -- not a theory context" ^ Position.here pos))) o
   Toplevel.present_local_theory loc (fn state =>
-    ignore (Thy_Output.output_text (Toplevel.presentation_context state) {markdown = markdown} txt));
+    ignore (output_document state markdown txt));
 
 val _ =
   Outer_Syntax.command ("chapter", \<^here>) "chapter heading"