summaryrefslogtreecommitdiff
path: root/src/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime')
-rw-r--r--src/runtime/haskell/PGF.hs10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/runtime/haskell/PGF.hs b/src/runtime/haskell/PGF.hs
index b03349963..010c9a7ef 100644
--- a/src/runtime/haskell/PGF.hs
+++ b/src/runtime/haskell/PGF.hs
@@ -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