src/Pure/PIDE/yxml.ML
changeset 80860 64dc09f7f189
parent 80828 389e1bf96e05
child 80861 9de19e3a7231
--- a/src/Pure/PIDE/yxml.ML	Wed Sep 11 20:06:12 2024 +0200
+++ b/src/Pure/PIDE/yxml.ML	Wed Sep 11 20:45:17 2024 +0200
@@ -16,9 +16,7 @@
 
 signature YXML =
 sig
-  val X: Symbol.symbol
-  val Y: Symbol.symbol
-  val detect: string -> bool
+  include YXML
   val traverse: (string -> 'a -> 'a) -> XML.tree -> 'a -> 'a
   val tree_size: XML.tree -> int
   val body_size: XML.body -> int
@@ -27,7 +25,6 @@
   val bytes_of_body: XML.body -> Bytes.T
   val bytes_of: XML.tree -> Bytes.T
   val write_body: Path.T -> XML.body -> unit
-  val output_markup: Markup.T -> string * string
   val output_markup_only: Markup.T -> string
   val output_markup_elem: Markup.T -> (string * string) * string
   val markup_ops: Markup.ops
@@ -41,20 +38,10 @@
 structure YXML: YXML =
 struct
 
-(** string representation **)
-
-(* markers *)
-
-val X_char = Char.chr 5;
-val Y_char = Char.chr 6;
+open YXML;
 
-val X = String.str X_char;
-val Y = String.str Y_char;
-val XY = X ^ Y;
-val XYX = XY ^ X;
 
-fun detect s = Char.contains s X_char orelse Char.contains s Y_char;
-
+(** string representation **)
 
 (* traverse *)
 
@@ -92,14 +79,6 @@
 val Z = chr 0;
 val Z_text = [XML.Text Z];
 
-fun output_markup (markup as (name, atts)) =
-  if Markup.is_empty markup then Markup.no_output
-  else
-    let
-      val bgs = XY :: name :: fold_rev (fn p => cons Y o cons (Properties.print_eq p)) atts [X];
-      val en = XYX;
-    in (implode bgs, en) end;
-
 val output_markup_only = op ^ o output_markup;
 
 fun output_markup_elem markup =
@@ -109,6 +88,7 @@
 val markup_ops: Markup.ops = {output = output_markup};
 
 
+
 (** efficient YXML parsing **)
 
 local