src/HOL/Matrix_LP/Compute_Oracle/am_sml.ML
changeset 59172 d1c500e0a722
parent 47455 26315a545e26
child 60956 10d463883dc2
equal deleted inserted replaced
59171:75ec7271b426 59172:d1c500e0a722
    10 sig
    10 sig
    11   include ABSTRACT_MACHINE
    11   include ABSTRACT_MACHINE
    12   val save_result : (string * term) -> unit
    12   val save_result : (string * term) -> unit
    13   val set_compiled_rewriter : (term -> term) -> unit
    13   val set_compiled_rewriter : (term -> term) -> unit
    14   val list_nth : 'a list * int -> 'a
    14   val list_nth : 'a list * int -> 'a
    15   val dump_output : (string option) Unsynchronized.ref 
    15   val dump_output : string option Unsynchronized.ref 
    16 end
    16 end
    17 
    17 
    18 structure AM_SML : AM_SML = struct
    18 structure AM_SML : AM_SML = struct
    19 
    19 
    20 open AbstractMachine;
    20 open AbstractMachine;
   488 fun use_source src = use_text ML_Env.local_context (1, "") false src
   488 fun use_source src = use_text ML_Env.local_context (1, "") false src
   489     
   489     
   490 fun compile rules = 
   490 fun compile rules = 
   491     let
   491     let
   492         val guid = get_guid ()
   492         val guid = get_guid ()
   493         val code = Real.toString (random ())
   493         val code = Real.toString (Random.random ())
   494         val name = "AMSML_"^guid
   494         val name = "AMSML_"^guid
   495         val (inlinetab, source) = sml_prog name code rules
   495         val (inlinetab, source) = sml_prog name code rules
   496         val _ = case !dump_output of NONE => () | SOME p => writeTextFile p source
   496         val _ = case !dump_output of NONE => () | SOME p => writeTextFile p source
   497         val _ = compiled_rewriter := NONE
   497         val _ = compiled_rewriter := NONE
   498         val _ = use_source source
   498         val _ = use_source source