equal
deleted
inserted
replaced
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 |