summaryrefslogtreecommitdiff
path: root/src/PGF/Macros.hs
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2009-05-22 18:54:51 +0000
committerkrasimir <krasimir@chalmers.se>2009-05-22 18:54:51 +0000
commit41b263cf6aa38e7c6ef090c0fa18949b86eec62c (patch)
tree9e604716ed1455238c3c49cf8add777c0cdf74d4 /src/PGF/Macros.hs
parent7a204376c91ea9647ec4418cfcd3ed0dd7891fae (diff)
some work on evaluation with abstract expressions in PGF
Diffstat (limited to 'src/PGF/Macros.hs')
-rw-r--r--src/PGF/Macros.hs12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/PGF/Macros.hs b/src/PGF/Macros.hs
index 462fa9cba..fe00f4ff7 100644
--- a/src/PGF/Macros.hs
+++ b/src/PGF/Macros.hs
@@ -35,17 +35,19 @@ lookPrintName pgf lang fun =
lookType :: PGF -> CId -> Type
lookType pgf f =
- fst $ lookMap (error $ "lookType " ++ show f) f (funs (abstract pgf))
+ case lookMap (error $ "lookType " ++ show f) f (funs (abstract pgf)) of
+ (ty,_,_) -> ty
lookDef :: PGF -> CId -> [Equation]
lookDef pgf f =
- snd $ lookMap (error $ "lookDef " ++ show f) f (funs (abstract pgf))
+ case lookMap (error $ "lookDef " ++ show f) f (funs (abstract pgf)) of
+ (_,a,eqs) -> eqs
isData :: PGF -> CId -> Bool
isData pgf f =
case Map.lookup f (funs (abstract pgf)) of
- Just (_,[]) -> True -- the encoding of data constrs
- _ -> False
+ Just (_,_,[]) -> True -- the encoding of data constrs
+ _ -> False
lookValCat :: PGF -> CId -> CId
lookValCat pgf = valCat . lookType pgf
@@ -74,7 +76,7 @@ lookConcrFlag pgf lang f = Map.lookup f $ cflags $ lookConcr pgf lang
functionsToCat :: PGF -> CId -> [(CId,Type)]
functionsToCat pgf cat =
- [(f,ty) | f <- fs, Just (ty,_) <- [Map.lookup f $ funs $ abstract pgf]]
+ [(f,ty) | f <- fs, Just (ty,_,_) <- [Map.lookup f $ funs $ abstract pgf]]
where
fs = lookMap [] cat $ catfuns $ abstract pgf