the Haskell runtime now exports 'functionsByCat' which returns the list of all functions for a given category

This commit is contained in:
kr.angelov
2012-09-18 09:48:21 +00:00
parent e98d62c42a
commit f75d1374ff

View File

@@ -35,7 +35,7 @@ module PGF(
categories, startCat,
-- * Functions
functions, functionType,
functions, functionsByCat, functionType,
-- * Expressions & Trees
-- ** Tree
@@ -227,6 +227,9 @@ startCat :: PGF -> Type
-- | List of all functions defined in the abstract syntax
functions :: PGF -> [CId]
-- | List of all functions defined for a given category
functionsByCat :: PGF -> CId -> [CId]
-- | The type of a given function
functionType :: PGF -> CId -> Maybe Type
@@ -276,6 +279,11 @@ startCat pgf = DTyp [] (lookStartCat pgf) []
functions pgf = Map.keys (funs (abstract pgf))
functionsByCat pgf cat =
case Map.lookup cat (cats (abstract pgf)) of
Just (_,fns,_) -> map snd fns
Nothing -> []
functionType pgf fun =
case Map.lookup fun (funs (abstract pgf)) of
Just (ty,_,_,_,_) -> Just ty