From fd518ed2a3fe50238e0e9e7947e33cc9d5de9bce Mon Sep 17 00:00:00 2001 From: aarne Date: Tue, 27 Mar 2007 20:54:49 +0000 Subject: primitive pattern matching --- devel/compiler/Eval.hs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'devel/compiler/Eval.hs') diff --git a/devel/compiler/Eval.hs b/devel/compiler/Eval.hs index cc1b22467..b59fb53f2 100644 --- a/devel/compiler/Eval.hs +++ b/devel/compiler/Eval.hs @@ -4,10 +4,11 @@ import AbsSrc import AbsTgt import SMacros import TMacros +import Match +import Env -import ComposOp import STM -import Env + eval :: Exp -> STM Env Val eval e = case e of @@ -38,11 +39,13 @@ eval e = case e of vs <- mapM eval [e | FExp _ e <- fs] return $ VRec vs - ETab cs -> do - vs <- mapM eval [e | Cas _ e <- cs] ---- expand and pattern match + ETab ty cs -> do +-- sz <- lookEnv parsizes ty +-- let ps = map (VPar . toInteger) [0..sz-1] + ps <- lookEnv partypes ty + vs <- mapM (\p -> match cs p >>= eval) ps return $ VRec vs - ESel t v -> do t' <- eval t v' <- eval v -- cgit v1.2.3