forked from GitHub/gf-core
names resolve in new GFtoGFCC
This commit is contained in:
@@ -26,6 +26,9 @@ listModules = assocs.gfmodules
|
||||
addModule :: Ident -> Module -> GF -> GF
|
||||
addModule c m gf = gf {gfmodules = insert c m (gfmodules gf)}
|
||||
|
||||
gfModules :: [(Ident,Module)] -> GF
|
||||
gfModules ms = emptyGF {gfmodules = fromList ms}
|
||||
|
||||
-- abstractions on Module
|
||||
|
||||
emptyModule :: Ident -> Module
|
||||
|
||||
@@ -171,11 +171,12 @@ label2ident (LIdent c) = identC c
|
||||
-- to apply a term operation to every term in a judgement, module, grammar
|
||||
|
||||
termOpGF :: Monad m => (Term -> m Term) -> GF -> m GF
|
||||
termOpGF f g = do
|
||||
ms <- mapMapM fm (gfmodules g)
|
||||
termOpGF f = moduleOpGF (termOpModule f)
|
||||
|
||||
moduleOpGF :: Monad m => (Module -> m Module) -> GF -> m GF
|
||||
moduleOpGF f g = do
|
||||
ms <- mapMapM f (gfmodules g)
|
||||
return g {gfmodules = ms}
|
||||
where
|
||||
fm = termOpModule f
|
||||
|
||||
termOpModule :: Monad m => (Term -> m Term) -> Module -> m Module
|
||||
termOpModule f = judgementOpModule fj where
|
||||
|
||||
Reference in New Issue
Block a user