summaryrefslogtreecommitdiff
path: root/compiler/InterpreterLoops.ml
diff options
context:
space:
mode:
authorSon Ho2023-11-21 14:43:12 +0100
committerSon Ho2023-11-21 14:43:12 +0100
commit77ba13b371cccbe8098e432ebd287108d5373666 (patch)
tree845bd9059f6fe94ce8c9e447104367d3a8e9d3c2 /compiler/InterpreterLoops.ml
parente94cd72ffa63dbc5fc40c7c1a422c1a70ba4a7e5 (diff)
Add span information to the generated code
Diffstat (limited to '')
-rw-r--r--compiler/InterpreterLoops.ml12
-rw-r--r--compiler/InterpreterLoops.mli3
2 files changed, 9 insertions, 6 deletions
diff --git a/compiler/InterpreterLoops.ml b/compiler/InterpreterLoops.ml
index f88fc977..ed2a9587 100644
--- a/compiler/InterpreterLoops.ml
+++ b/compiler/InterpreterLoops.ml
@@ -2,6 +2,7 @@ open Types
open Values
open Contexts
open ValuesUtils
+open Meta
module S = SynthesizeSymbolic
open Cps
open InterpreterUtils
@@ -60,8 +61,8 @@ let eval_loop_concrete (eval_loop_body : st_cm_fun) : st_cm_fun =
eval_loop_body reeval_loop_body ctx
(** Evaluate a loop in symbolic mode *)
-let eval_loop_symbolic (config : config) (eval_loop_body : st_cm_fun) :
- st_cm_fun =
+let eval_loop_symbolic (config : config) (meta : meta)
+ (eval_loop_body : st_cm_fun) : st_cm_fun =
fun cf ctx ->
(* Debug *)
log#ldebug
@@ -205,9 +206,10 @@ let eval_loop_symbolic (config : config) (eval_loop_body : st_cm_fun) :
(* Put together *)
S.synthesize_loop loop_id input_svalues fresh_sids rg_to_given_back end_expr
- loop_expr
+ loop_expr meta
-let eval_loop (config : config) (eval_loop_body : st_cm_fun) : st_cm_fun =
+let eval_loop (config : config) (meta : meta) (eval_loop_body : st_cm_fun) :
+ st_cm_fun =
fun cf ctx ->
match config.mode with
| ConcreteMode -> eval_loop_concrete eval_loop_body cf ctx
@@ -231,4 +233,4 @@ let eval_loop (config : config) (eval_loop_body : st_cm_fun) : st_cm_fun =
*non-fixed* abstractions.
*)
let cc = prepare_ashared_loans None in
- comp cc (eval_loop_symbolic config eval_loop_body) cf ctx
+ comp cc (eval_loop_symbolic config meta eval_loop_body) cf ctx
diff --git a/compiler/InterpreterLoops.mli b/compiler/InterpreterLoops.mli
index 320e4bcb..03633861 100644
--- a/compiler/InterpreterLoops.mli
+++ b/compiler/InterpreterLoops.mli
@@ -58,6 +58,7 @@
open Contexts
open Cps
+open Meta
(** Evaluate a loop *)
-val eval_loop : config -> st_cm_fun -> st_cm_fun
+val eval_loop : config -> meta -> st_cm_fun -> st_cm_fun