From f75d1374ffa3d7eb5d64738d3e1575bc9713667d Mon Sep 17 00:00:00 2001 From: "kr.angelov" Date: Tue, 18 Sep 2012 09:48:21 +0000 Subject: [PATCH] the Haskell runtime now exports 'functionsByCat' which returns the list of all functions for a given category --- src/runtime/haskell/PGF.hs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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