src/Pure/Syntax/symbol_font.ML
author wenzelm
Mon, 09 Dec 1996 16:41:04 +0100
changeset 2348 b51e104ecf40
parent 2255 f9126d306a02
child 2362 4744b27cdf89
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2207
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
     1
(*  Title:      Pure/Syntax/symbol_font.ML
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
     2
    ID:         $Id$
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
     3
    Author:     Markus Wenzel, TU Muenchen
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
     4
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
     5
The Isabelle symbol font.
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
     6
*)
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
     7
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
     8
signature SYMBOL_FONT =
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
     9
sig
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    10
  val char_names: string list
2208
39002438a79c tuned some char names;
wenzelm
parents: 2207
diff changeset
    11
  val char: string -> string option
2207
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    12
end;
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    13
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    14
structure SymbolFont : SYMBOL_FONT =
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    15
struct
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    16
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    17
(** the encoding vector **)
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    18
2208
39002438a79c tuned some char names;
wenzelm
parents: 2207
diff changeset
    19
val enc_start = 161;
2207
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    20
val enc_end = 255;
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    21
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    22
val enc_vector =
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    23
[
2208
39002438a79c tuned some char names;
wenzelm
parents: 2207
diff changeset
    24
      "Gamma", "Delta", "Theta", "Lambda", "Pi", "Sigma", "Phi",
2207
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    25
  "Psi", "Omega", "alpha", "beta", "gamma", "delta", "epsilon", "zeta",
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    26
  "eta", "theta", "kappa", "lambda", "mu", "nu", "xi", "pi",
2255
f9126d306a02 improved some symbol names;
wenzelm
parents: 2208
diff changeset
    27
  "rho", "sigma", "tau", "phi", "chi", "psi", "omega", "not",
f9126d306a02 improved some symbol names;
wenzelm
parents: 2208
diff changeset
    28
  "and", "or", "forall", "exists", "And", "lceil", "rceil", "lfloor",
f9126d306a02 improved some symbol names;
wenzelm
parents: 2208
diff changeset
    29
  "rfloor", "lparr", "rparr", "lbrakk", "rbrakk", "empty", "in", "subseteq",
f9126d306a02 improved some symbol names;
wenzelm
parents: 2208
diff changeset
    30
  "inter", "union", "Inter", "Union", "sqinter", "squnion", "Sqinter", "Squnion",
2207
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    31
  "bottom", "doteq", "equiv", "noteq", "sqsubset", "sqsubseteq", "prec", "preceq",
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    32
  "succ", "succeq", "sim", "simeq", "le", "ge", "leftarrow", "midarrow",
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    33
  "rightarrow", "Leftarrow", "Midarrow", "Rightarrow", "rrightarrow", "mapsto", "leadsto", "up",
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    34
  "down", "notin", "times", "oplus", "ominus", "otimes", "oslash", "natural",
2208
39002438a79c tuned some char names;
wenzelm
parents: 2207
diff changeset
    35
  "infinity", "box", "diamond", "circ", "bullet", "parallel", "tick", "copyright"
2207
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    36
];
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    37
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    38
val enc_tab = Symtab.make (enc_vector ~~ (enc_start upto enc_end));
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    39
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    40
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    41
(** chars by name **)
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    42
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    43
val char_names = enc_vector;
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    44
2208
39002438a79c tuned some char names;
wenzelm
parents: 2207
diff changeset
    45
fun char name = apsome chr (Symtab.lookup (enc_tab, name));
2207
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    46
f7f06d4deaa2 added this file;
wenzelm
parents:
diff changeset
    47
end;