src/Pure/Thy/ROOT.ML
author wenzelm
Thu, 19 May 1994 16:27:16 +0200
changeset 390 b074205ac50a
parent 74 208ab8773a73
child 413 2a1554524ad5
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
390
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
     1
(*  Title:      Pure/Thy/ROOT.ML
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     2
    ID:         $Id$
390
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
     3
    Author:     Sonia Mahjoub and Tobias Nipkow and
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
     4
                Markus Wenzel and Carsten Clasohm, TU Muenchen
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     5
390
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
     6
This file builds the theory parser and autoloading system.
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     7
*)
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     8
390
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
     9
(* FIXME remove (still needed by HOL/Datatype.ML) *)
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    10
use "scan.ML"; use "parse.ML";
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    11
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    12
use "thy_scan.ML";
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    13
use "thy_parse.ML";
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    14
use "thy_read.ML";
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    15
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    16
structure ThyScan = ThyScanFun(Scanner);
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    17
structure ThyParse = ThyParseFun(structure Symtab = Symtab
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    18
  and ThyScan = ThyScan);
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    19
structure ThyRead = ThyReadFun(structure ThyParse = ThyParse);
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    20
open ThyRead;
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    21
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    22
390
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    23
(* FIXME tmp hack *)
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    24
390
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    25
fun eval txt =
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    26
  let
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    27
    val tmp_name = "/tmp/.eval.tmp";
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    28
    val tmp_file = open_out tmp_name;
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    29
  in
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    30
    output (tmp_file, txt);
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    31
    close_out tmp_file;
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    32
    use tmp_name;
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    33
    delete_file tmp_name
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    34
  end;
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    35
74
208ab8773a73 changes in Readthy:
clasohm
parents: 0
diff changeset
    36
390
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    37
fun init_thy_reader () = 
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    38
  eval   (* FIXME use_string *)
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    39
    "structure ThyRead = ThyReadFun(structure ThyParse = ThyParse);\n\
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    40
    \ThyRead.loaded_thys := ! loaded_thys;\n\
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    41
    \open ThyRead;\n";
b074205ac50a *** empty log message ***
wenzelm
parents: 74
diff changeset
    42