summaryrefslogtreecommitdiff
path: root/src/process_file.ml
diff options
context:
space:
mode:
authorAlasdair Armstrong2019-07-16 18:57:46 +0100
committerAlasdair Armstrong2019-07-16 18:57:46 +0100
commitcd909e15b97739b10214023af04b2fbbb4d20cf7 (patch)
tree9a418c7cafa915c29e93242848a1411cbd8b8f7c /src/process_file.ml
parent6d3a6edcd616621eb40420cfb16a34762a32c5c1 (diff)
parent170543faa031d90186e6b45612ed8374f1c25f7b (diff)
Merge remote-tracking branch 'origin/sail2' into separate_bv
Diffstat (limited to 'src/process_file.ml')
-rw-r--r--src/process_file.ml10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/process_file.ml b/src/process_file.ml
index 7da3c130..60261196 100644
--- a/src/process_file.ml
+++ b/src/process_file.ml
@@ -368,9 +368,9 @@ let output libpath out_arg files =
output1 libpath out_arg f type_env defs)
files
-let rewrite_step n total env defs (name, rewriter) =
+let rewrite_step n total (defs, env) (name, rewriter) =
let t = Profile.start () in
- let defs = rewriter env defs in
+ let defs, env = rewriter env defs in
Profile.finish ("rewrite " ^ name) t;
let _ = match !(opt_ddump_rewrite_ast) with
| Some (f, i) ->
@@ -384,15 +384,15 @@ let rewrite_step n total env defs (name, rewriter) =
end
| _ -> () in
Util.progress "Rewrite " name n total;
- defs
+ defs, env
let rewrite env rewriters defs =
let total = List.length rewriters in
- try snd (List.fold_left (fun (n, defs) rw -> n + 1, rewrite_step n total env defs rw) (1, defs) rewriters) with
+ try snd (List.fold_left (fun (n, defsenv) rw -> n + 1, rewrite_step n total defsenv rw) (1, (defs, env)) rewriters) with
| Type_check.Type_error (_, l, err) ->
raise (Reporting.err_typ l (Type_error.string_of_type_error err))
-let rewrite_ast_initial env = rewrite env [("initial", fun _ -> Rewriter.rewrite_defs)]
+let rewrite_ast_initial env = rewrite env [("initial", fun env defs -> Rewriter.rewrite_defs defs, env)]
let rewrite_ast_target tgt env = rewrite env (Rewrites.rewrite_defs_target tgt)