From 7769d0fb00a34fb4499017a4aec01a59246b69a1 Mon Sep 17 00:00:00 2001 From: bringert Date: Thu, 16 Sep 2004 11:09:37 +0000 Subject: [PATCH] When printing CFGM, only include the top-level modules --- src/GF/CFGM/PrintCFGrammar.hs | 9 +++++++-- 1 file 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