src/Pure/Syntax/token_trans.ML
changeset 6322 7047300264c9
parent 5989 9670dae0143d
child 6695 d3ba5427d562
--- a/src/Pure/Syntax/token_trans.ML	Tue Mar 09 12:11:00 1999 +0100
+++ b/src/Pure/Syntax/token_trans.ML	Tue Mar 09 12:11:29 1999 +0100
@@ -3,10 +3,19 @@
     Author:     Markus Wenzel, TU Muenchen
 
 Token translations for xterm, emacs and latex output.
+
+TODO:
+  - elim this file, move stuff to individual print/presentation modes (!?);
 *)
 
+signature TOKEN_TRANS0 =
+sig
+  val standard_token_classes: string list
+end;
+
 signature TOKEN_TRANS =
 sig
+  include TOKEN_TRANS0
   val normal: string
   val bold: string
   val underline: string
@@ -31,7 +40,7 @@
   val xterm_color_free: string ref
   val xterm_color_bound: string ref
   val xterm_color_var: string ref
-  val token_translation: (string * string * (string -> string * int)) list
+  val token_translation: (string * string * (string -> string * real)) list
 end;
 
 structure TokenTrans: TOKEN_TRANS =
@@ -42,7 +51,8 @@
 
 fun trans_mode m trs = map (fn (s, f) => (m, s, f)) trs;
 
-val std_token_classes = ["class", "tfree", "tvar", "free", "bound", "var"];
+val standard_token_classes =
+  ["class", "tfree", "tvar", "free", "bound", "var", "xnum", "xstr"];
 
 
 
@@ -64,7 +74,7 @@
 val cyan = "\^[[36m";
 val white = "\^[[37m";
 
-fun style (ref s) x = (s ^ x ^ normal, size x);
+fun style (ref s) x = (s ^ x ^ normal, real (size x));
 
 
 (* print modes "xterm" and "xterm_color" *)
@@ -113,7 +123,7 @@
 val bound_tag = "\^A5";
 val var_tag = "\^A6";
 
-fun tagit p x = (p ^ x ^ end_tag, size x);
+fun tagit p x = (p ^ x ^ end_tag, real (size x));
 
 in
 
@@ -142,7 +152,7 @@
 val bound_tag = oct_char "355";
 val var_tag = oct_char "356";
 
-fun tagit p x = (p ^ x ^ end_tag, size x);
+fun tagit p x = (p ^ x ^ end_tag, real (size x));
 
 in
 
@@ -164,14 +174,14 @@
 (* FIXME 'a -> \alpha etc. *)
 
 val latex_trans =
- trans_mode "latex" [] : (string * string * (string -> string * int)) list;
+ trans_mode "latex" [] : (string * string * (string -> string * real)) list;
 
 
 
 (** standard token translations **)
 
 val token_translation =
-  map (fn s => ("", s, fn x => (x, size x))) std_token_classes @
+  map (fn s => ("", s, fn x => (x, real (size x)))) standard_token_classes @
   xterm_trans @
   emacs_trans @
   proof_general_trans @