summaryrefslogtreecommitdiff
path: root/src/process_file.ml
diff options
context:
space:
mode:
authorAlasdair Armstrong2018-01-12 17:27:37 +0000
committerAlasdair Armstrong2018-01-12 17:27:37 +0000
commite56eafdb87f3f4e362cca7d0a6ca3d8a0e849b44 (patch)
tree4b19d06dd6a234c5524c88e8aeceefce41ca8864 /src/process_file.ml
parentebc33211b0a3a6c14bbe4106b9a618b8ac594f52 (diff)
parentffcf8a814cdd23eaff9286835478afb66fbb0029 (diff)
Merge remote-tracking branch 'origin/experiments' into sail2
Diffstat (limited to 'src/process_file.ml')
-rw-r--r--src/process_file.ml20
1 files changed, 9 insertions, 11 deletions
diff --git a/src/process_file.ml b/src/process_file.ml
index 7a4f71e3..ca23d876 100644
--- a/src/process_file.ml
+++ b/src/process_file.ml
@@ -53,7 +53,7 @@ let opt_lem_mwords = ref false
type out_type =
| Lem_ast_out
- | Lem_out of string option
+ | Lem_out of string list
let get_lexbuf f =
let in_chan = open_in f in
@@ -101,7 +101,7 @@ let opt_dmono_analysis = ref 0
let opt_auto_mono = ref false
let monomorphise_ast locs type_env ast =
- let ast = Monomorphise.monomorphise (!opt_lem_mwords) (!opt_auto_mono) (!opt_dmono_analysis)
+ let ast = Monomorphise.monomorphise (!Pretty_print_lem.opt_mwords) (!opt_auto_mono) (!opt_dmono_analysis)
locs type_env ast in
let () = if !opt_ddump_raw_mono_ast then Pretty_print_sail.pp_defs stdout ast else () in
let ienv = Type_check.Env.no_casts Type_check.initial_env in
@@ -130,10 +130,10 @@ let generated_line f =
let output_lem filename libs defs =
let generated_line = generated_line filename in
- let seq_suffix = if !opt_lem_sequential then "_sequential" else "" in
+ let seq_suffix = if !Pretty_print_lem.opt_sequential then "_sequential" else "" in
let types_module = (filename ^ "_embed_types" ^ seq_suffix) in
- let monad_module = if !opt_lem_sequential then "State" else "Prompt" in
- let operators_module = if !opt_lem_mwords then "Sail_operators_mwords" else "Sail_operators" in
+ let monad_module = if !Pretty_print_lem.opt_sequential then "State" else "Prompt" in
+ let operators_module = if !Pretty_print_lem.opt_mwords then "Sail_operators_mwords" else "Sail_operators" in
let libs = List.map (fun lib -> lib ^ seq_suffix) libs in
let base_imports = [
"Pervasives_extra";
@@ -146,7 +146,7 @@ let output_lem filename libs defs =
open_output_with_check_unformatted (filename ^ "_embed_types" ^ seq_suffix ^ ".lem") in
let ((o,_, _) as ext_o) =
open_output_with_check_unformatted (filename ^ "_embed" ^ seq_suffix ^ ".lem") in
- (Pretty_print.pp_defs_lem !opt_lem_sequential !opt_lem_mwords
+ (Pretty_print.pp_defs_lem
(ot, base_imports)
(o, base_imports @ (String.capitalize types_module :: libs))
defs generated_line);
@@ -172,10 +172,8 @@ let output1 libpath out_arg filename defs =
Pretty_print.pp_lem_defs o defs;
close_output_with_check ext_o
end
- | Lem_out None ->
- output_lem f' [] defs
- | Lem_out (Some lib) ->
- output_lem f' [lib] defs
+ | Lem_out libs ->
+ output_lem f' libs defs
let output libpath out_arg files =
List.iter
@@ -204,7 +202,7 @@ let rewrite rewriters defs =
raise (Reporting_basic.err_typ l (Type_check.string_of_type_error err))
let rewrite_ast = rewrite [("initial", Rewriter.rewrite_defs)]
-let rewrite_undefined = rewrite [("undefined", fun x -> Rewrites.rewrite_undefined !opt_lem_mwords x)]
+let rewrite_undefined = rewrite [("undefined", fun x -> Rewrites.rewrite_undefined !Pretty_print_lem.opt_mwords x)]
let rewrite_ast_lem = rewrite Rewrites.rewrite_defs_lem
let rewrite_ast_ocaml = rewrite Rewrites.rewrite_defs_ocaml
let rewrite_ast_interpreter = rewrite Rewrites.rewrite_defs_interpreter