src/Pure/Interface/isamode.ML
author wenzelm
Fri, 21 May 1999 16:25:49 +0200
changeset 6698 c450839439f0
child 12117 b84046fb6e02
permissions -rw-r--r--
Configuration for David Aspinall's Isamode.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6698
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
     1
(*  Title:      Pure/Interface/isamode.ML
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
     2
    ID:         $Id$
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
     3
    Author:     Markus Wenzel, TU Muenchen
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
     4
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
     5
Configuration for David Aspinall's Isamode.
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
     6
*)
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
     7
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
     8
signature ISAMODE =
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
     9
sig
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    10
  val setup: (theory -> theory) list
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    11
  val init: bool -> unit
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    12
end;
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    13
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    14
structure Isamode: ISAMODE =
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    15
struct
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    16
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    17
(** compile-time theory setup **)
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    18
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    19
(* token translations *)
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    20
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    21
val isamodeN = "Isamode";
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    22
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    23
local
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    24
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    25
val end_tag = "\^A0";
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    26
val tclass_tag = "\^A1";
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    27
val tfree_tag = "\^A2";
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    28
val tvar_tag = "\^A3";
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    29
val free_tag = "\^A4";
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    30
val bound_tag = "\^A5";
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    31
val var_tag = "\^A6";
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    32
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    33
fun tagit p x = (p ^ x ^ end_tag, real (size x));
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    34
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    35
in
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    36
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    37
val isamode_trans =
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    38
 Syntax.tokentrans_mode isamodeN
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    39
  [("class", tagit tclass_tag),
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    40
   ("tfree", tagit tfree_tag),
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    41
   ("tvar", tagit tvar_tag),
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    42
   ("free", tagit free_tag),
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    43
   ("bound", tagit bound_tag),
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    44
   ("var", tagit var_tag)];
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    45
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    46
end;
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    47
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    48
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    49
(* setup *)
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    50
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    51
val setup = [Theory.add_tokentrfuns isamode_trans];
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    52
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    53
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    54
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    55
(** run-time initialization **)
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    56
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    57
fun init isamode =
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    58
  if isamode then print_mode := [Symbol.isabelle_fontN, Symbol.symbolsN, isamodeN]
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    59
  else print_mode := [Symbol.isabelle_fontN, Symbol.symbolsN];
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    60
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    61
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    62
end;