Changeset 32 for src/Eval.hs
- Timestamp:
- 02/16/05 18:48:28 (4 years ago)
- svk:copy_cache_prev:
- 1041
- Files:
-
- 1 modified
-
src/Eval.hs (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Eval.hs
r31 r32 29 29 uniq <- liftIO $ newUnique 30 30 return $ Env 31 { envContext = " List"31 { envContext = "Void" 32 32 , envLexical = [] 33 33 , envGlobal = initSyms … … 57 57 evaluate :: Exp -> Eval Val 58 58 evaluate (Val (VSub sub)) = do 59 pad <- asks envLexical 60 return $ VSub sub{ subPad = pad } -- closure! 59 cxt <- asks envContext 60 if cxt == "Void" && subType sub == SubBlock 61 then do 62 exp <- apply sub [] [] 63 evalExp exp 64 else do 65 pad <- asks envLexical 66 return $ VSub sub{ subPad = pad } -- closure! 61 67 evaluate (Val val) = return val 62 68 evaluate exp = do … … 149 155 let [Sym (Symbol _ _ exp)] = exps 150 156 val <- evalExp exp 151 retVal val157 retVal VUndef 152 158 ":=" -> do 153 159 let [Var var, exp] = exps 154 val <- e valExpexp160 val <- enterEvalContext (cxtOfSigil $ head var) exp 155 161 retVal val 156 162 "::=" -> do -- XXX wrong
