From b76c8c195cb4f6bb7bdaa5c3d2c522c2c39f7e15 Mon Sep 17 00:00:00 2001 From: bjorn Date: Thu, 12 Jun 2008 18:35:25 +0000 Subject: [PATCH] Add GF.Speech.SRG.isExternalCat --- src-3.0/GF/Speech/SRG.hs | 6 +++++- src-3.0/GF/Speech/SRGS_XML.hs | 3 +-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src-3.0/GF/Speech/SRG.hs b/src-3.0/GF/Speech/SRG.hs index a4a41afb5..8bb509d22 100644 --- a/src-3.0/GF/Speech/SRG.hs +++ b/src-3.0/GF/Speech/SRG.hs @@ -8,12 +8,13 @@ -- FIXME: remove \/ warn \/ fail if there are int \/ string literal -- categories in the grammar ---------------------------------------------------------------------- -module GF.Speech.SRG (SRG(..), SRGRule(..), SRGAlt(..), SRGItem +module GF.Speech.SRG (SRG(..), SRGRule(..), SRGAlt(..), SRGItem, SRGSymbol , SRGNT, CFTerm , makeSRG , makeSimpleSRG , makeNonRecursiveSRG , getSpeechLanguage + , isExternalCat , lookupFM_, prtS ) where @@ -139,6 +140,9 @@ cfRulesToSRGRule rs@(r:_) = SRGRule (lhsCat r) rhs allSRGCats :: SRG -> [String] allSRGCats SRG { srgRules = rs } = [c | SRGRule c _ <- rs] +isExternalCat :: SRG -> Cat -> Bool +isExternalCat srg c = c `Set.member` srgExternalCats srg + -- -- * Size-optimized EBNF SRGs -- diff --git a/src-3.0/GF/Speech/SRGS_XML.hs b/src-3.0/GF/Speech/SRGS_XML.hs index a4c07ee05..97c1629fb 100644 --- a/src-3.0/GF/Speech/SRGS_XML.hs +++ b/src-3.0/GF/Speech/SRGS_XML.hs @@ -20,7 +20,6 @@ import Data.Char (toUpper,toLower) import Data.List import Data.Maybe import qualified Data.Map as Map -import qualified Data.Set as Set srgsXmlPrinter :: Maybe SISRFormat -> PGF -> CId -> String @@ -39,7 +38,7 @@ prSrgsXml sisr srg = showXMLDoc (optimizeSRGS xmlGr) meta "generator" "Grammatical Framework"] ++ map ruleToXML (srgRules srg) ruleToXML (SRGRule cat alts) = Tag "rule" ([("id",cat)]++pub) (prRhs alts) - where pub | cat `Set.member` srgExternalCats srg = [("scope","public")] + where pub | isExternalCat srg cat = [("scope","public")] | otherwise = [] prRhs rhss = [oneOf (map (mkProd sisr) rhss)]