diff options
author | Son Ho | 2021-12-17 16:55:55 +0100 |
---|---|---|
committer | Son Ho | 2021-12-17 16:55:55 +0100 |
commit | e1c7e68a476f65ec8c0b4d7c02a2dea09b2a4522 (patch) | |
tree | da5bf4925c410d7449fe24e266cc3c2c97d8ce1b /src/Contexts.ml | |
parent | 644f91b355de4c80b882625e476cc5ee6b86d696 (diff) |
Use eval_ctx instead of env in many functions of the interpreter
Diffstat (limited to 'src/Contexts.ml')
-rw-r--r-- | src/Contexts.ml | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/Contexts.ml b/src/Contexts.ml index 0dc18952..001ebf19 100644 --- a/src/Contexts.ml +++ b/src/Contexts.ml @@ -244,3 +244,23 @@ class ['self] map_frame_concrete = let env = self#visit_env acc env in em :: env end + +(** Visitor to iterate over the values in a context *) +class ['self] iter_eval_ctx = + object (self : 'self) + inherit [_] iter_env as super + + method visit_eval_ctx : 'acc -> eval_ctx -> unit = + fun acc ctx -> super#visit_env acc ctx.env + end + +(** Visitor to map the values in a context *) +class ['self] map_eval_ctx = + object (self : 'self) + inherit [_] map_env as super + + method visit_eval_ctx : 'acc -> eval_ctx -> eval_ctx = + fun acc ctx -> + let env = super#visit_env acc ctx.env in + { ctx with env } + end |