1
0
forked from GitHub/gf-core
Files
gf-core/devel/compiler/Eval.hs
2007-03-26 21:13:37 +00:00

23 lines
399 B
Haskell

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