diff options
author | Erik Svedäng <erik.svedang@gmail.com> | 2021-01-11 13:22:26 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-11 13:22:26 +0100 |
commit | 6d2dde8bea512f3500631ae082aafbd5b84d86b9 (patch) | |
tree | ede6ec72e22bec1ea2c1efa7831624419b9bdb59 | |
parent | 2db218353c945dd236815f6689683675c5e2cbf1 (diff) |
Revert "eval: fix resolve semantics for successive evaluation (#1116)"revert-1116-veit/fix-eval-static-semantics
This reverts commit 2db218353c945dd236815f6689683675c5e2cbf1.
-rw-r--r-- | src/Eval.hs | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/Eval.hs b/src/Eval.hs index a1272917..93d7767c 100644 --- a/src/Eval.hs +++ b/src/Eval.hs @@ -282,7 +282,7 @@ eval ctx xobj@(XObj o info ty) preference resolver = \case err@(Left _) -> pure err Right ctx' -> do - (newCtx, res) <- eval ctx' x preference resolver + (newCtx, res) <- eval ctx' x preference ResolveLocal case res of Right okX -> do let binder = Binder emptyMeta (XObj (Lst [XObj LetDef Nothing Nothing, XObj (Sym (SymPath [] n) Symbol) Nothing Nothing, okX]) Nothing (xobjTy okX)) @@ -383,10 +383,10 @@ eval ctx xobj@(XObj o info ty) preference resolver = pure (popFrame newCtx', res) x -> pure (newCtx, x) x@(XObj (Sym _ _) i _) : args -> do - (newCtx, f) <- eval ctx x preference resolver + (newCtx, f) <- eval ctx x preference ResolveLocal case f of Right fun -> do - (newCtx', res) <- eval (pushFrame ctx xobj) (XObj (Lst (fun : args)) i ty) preference resolver + (newCtx', res) <- eval (pushFrame ctx xobj) (XObj (Lst (fun : args)) i ty) preference ResolveLocal pure (popFrame newCtx', res) Left err -> pure (newCtx, Left err) XObj With _ _ : xobj'@(XObj (Sym path _) _ _) : forms -> @@ -401,7 +401,7 @@ eval ctx xobj@(XObj o info ty) preference resolver = successiveEval' (ctx', acc) x = case acc of err@(Left _) -> pure (ctx', err) - Right _ -> eval ctx' x preference resolver + Right _ -> eval ctx' x preference ResolveLocal [XObj While _ _, cond, body] -> specialCommandWhile ctx cond body [XObj Address _ _, value] -> @@ -445,7 +445,7 @@ eval ctx xobj@(XObj o info ty) preference resolver = case acc of Left _ -> pure (ctx', acc) Right l -> do - (newCtx, evald) <- eval ctx' x preference resolver + (newCtx, evald) <- eval ctx' x preference ResolveLocal pure $ case evald of Right res -> (newCtx, Right (l ++ [res])) Left err -> (newCtx, Left err) |