started eval

This commit is contained in:
aarne
2007-03-26 21:13:37 +00:00
parent b36f70e6fd
commit 22c4a046e7

22
devel/compiler/Eval.hs Normal file
View File

@@ -0,0 +1,22 @@
module Eval where
import AbsSrc
import AbsTgt
import qualified Data.Map as M
eval :: Env -> Exp -> Val
eval env e = case e of
ECon c -> look c
EStr s -> VTok s
ECat x y -> VCat (ev x) (ev y)
where
look = lookCons env
ev = eval env
data Env = Env {
constants :: M.Map Ident Val
}
lookCons :: Env -> Ident -> Val
lookCons env c = maybe undefined id $ M.lookup c $ constants env