diff options
| author | bringert <unknown> | 2004-09-16 11:09:37 +0000 |
|---|---|---|
| committer | bringert <unknown> | 2004-09-16 11:09:37 +0000 |
| commit | 7769d0fb00a34fb4499017a4aec01a59246b69a1 (patch) | |
| tree | aee46f85119e96476c6d87d99412cda8c0adb937 | |
| parent | a38f028f04e6f2f635a5f371fb01a8d8a1930c99 (diff) | |
When printing CFGM, only include the top-level modules
| -rw-r--r-- | src/GF/CFGM/PrintCFGrammar.hs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/GF/CFGM/PrintCFGrammar.hs b/src/GF/CFGM/PrintCFGrammar.hs index f073893b1..f27eddb1a 100644 --- a/src/GF/CFGM/PrintCFGrammar.hs +++ b/src/GF/CFGM/PrintCFGrammar.hs @@ -7,16 +7,21 @@ import GFC import Modules import qualified ConvertGrammar as Cnv import qualified PrintParser as Prt +import ErrM import List (intersperse) -import Maybe (listToMaybe, fromMaybe) +import Maybe (listToMaybe, maybe) -- FIXME: fix warning about bad -printer= value prCanonAsCFGM :: CanonGrammar -> String prCanonAsCFGM gr = unlines $ map (uncurry (prLangAsCFGM gr)) xs where - xs = [(i,getFlag fs "startcat") | (i,ModMod (Module{mtype=MTConcrete _,flags=fs})) <- modules gr] + cncs = maybe [] (allConcretes gr) (greatestAbstract gr) + cncms = map (\i -> (i,fromOk (lookupModule gr i))) cncs + fromOk (Ok x) = x + fromOk (Bad y) = error y + xs = [(i,getFlag fs "startcat") | (i,ModMod (Module{flags=fs})) <- cncms] -- FIXME: need to look in abstract module too getFlag :: [Flag] -> String -> Maybe String |
