summaryrefslogtreecommitdiff
path: root/compiler/Cps.ml
diff options
context:
space:
mode:
authorSon Ho2022-12-14 18:25:49 +0100
committerSon HO2023-02-03 11:21:46 +0100
commit20332f3faa5e1205602c946f1c7abb9b6660e6f0 (patch)
tree4ac5f36f0487a53f6461885fd25c70c06b6f656c /compiler/Cps.ml
parent1a912cbf23c31c95041526c71bbd050bb5ac4e7c (diff)
Add a `Loop` node in the pure AST
Diffstat (limited to 'compiler/Cps.ml')
-rw-r--r--compiler/Cps.ml10
1 files changed, 6 insertions, 4 deletions
diff --git a/compiler/Cps.ml b/compiler/Cps.ml
index 1e5c0e70..1b5164a1 100644
--- a/compiler/Cps.ml
+++ b/compiler/Cps.ml
@@ -17,19 +17,21 @@ type statement_eval_res =
| Return
| Panic
| LoopReturn (** We reached a return statement *while inside a loop* *)
- | EndEnterLoop of V.typed_value list
+ | EndEnterLoop of V.typed_value V.SymbolicValueId.Map.t
(** When we enter a loop, we delegate the end of the function is
synthesized with a call to the loop translation. We use this
evaluation result to transmit the fact that we end evaluation
because we entered a loop.
- We provide the list of values for the translated loop function call.
+ We provide the list of values for the translated loop function call
+ (or to be more precise the input values instantiation).
*)
- | EndContinue of V.typed_value list
+ | EndContinue of V.typed_value V.SymbolicValueId.Map.t
(** For loop translations: we end with a continue (i.e., a recursive call
to the translation for the loop body).
- We provide the list of values for the translated loop function call.
+ We provide the list of values for the translated loop function call
+ (or to be more precise the input values instantiation).
*)
[@@deriving show]