Token translations for xterm and LaTeX output.
authorwenzelm
Fri, 28 Feb 1997 16:42:06 +0100
changeset 2697 60999ba189b7
parent 2696 a41b9ee247ec
child 2698 8bccb3ab4ca4
Token translations for xterm and LaTeX output.
src/Pure/Syntax/token_trans.ML
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Pure/Syntax/token_trans.ML	Fri Feb 28 16:42:06 1997 +0100
@@ -0,0 +1,60 @@
+(*  Title:      Pure/Syntax/token_trans.ML
+    ID:         $Id$
+    Author:     Markus Wenzel, TU Muenchen
+
+Token translations for xterm and LaTeX output.
+*)
+
+signature TOKEN_TRANS =
+sig
+  val token_translation: (string * string * (string -> string * int)) list
+end;
+
+structure TokenTrans: TOKEN_TRANS =
+struct
+
+(** misc utils **)
+
+fun trans_mode m trs = map (fn (s, f) => (m, s, f)) trs;
+
+val tok_classes = ["class", "tfree", "tvar", "free", "bound", "var"];
+
+
+
+(** xterm output **)
+
+(* styles *)
+
+val normal = "\^[[0m";
+val bold = "\^[[1m";
+val underline = "\^[[4m";
+
+fun style s x = (s ^ x ^ normal, size x);
+
+
+val xterm_trans =
+ trans_mode "xterm"
+  [("bound", style underline),
+   ("free", style bold),
+   ("var", style bold),
+   ("tfree", style bold),
+   ("tvar", style bold)];
+
+(* FIXME xterm-color *)
+
+
+(** LaTeX output **)
+
+(* FIXME 'a -> \alpha etc. *)
+
+
+(** token translations **)
+
+val token_translation =
+  map (fn s => ("", s, fn x => (x, size x))) tok_classes @
+  (* FIXME tmp test *)
+  map (fn s => ("test", s, fn x => (s ^ "[" ^ x ^ "]", size x + size s + 2))) tok_classes @
+  xterm_trans;
+
+
+end;