forked from GitHub/gf-core
top-level toy compiler - far from complete
This commit is contained in:
16
devel/compiler/SMacros.hs
Normal file
16
devel/compiler/SMacros.hs
Normal file
@@ -0,0 +1,16 @@
|
||||
module SMacros where
|
||||
|
||||
import AbsSrc
|
||||
|
||||
apps :: Exp -> (Exp,[Exp])
|
||||
apps e = (f,reverse xs) where
|
||||
(f,xs) = aps e
|
||||
aps e = case e of
|
||||
EApp f x -> let (f',xs) = aps f in (f',x:xs)
|
||||
_ -> (e,[])
|
||||
|
||||
constr :: Ident -> [Exp] -> Exp
|
||||
constr = ECst
|
||||
|
||||
mkApp :: Exp -> [Exp] -> Exp
|
||||
mkApp f = foldl EApp f
|
||||
Reference in New Issue
Block a user