diff options
| author | bjorn <bjorn@bringert.net> | 2008-06-12 18:35:25 +0000 |
|---|---|---|
| committer | bjorn <bjorn@bringert.net> | 2008-06-12 18:35:25 +0000 |
| commit | b76c8c195cb4f6bb7bdaa5c3d2c522c2c39f7e15 (patch) | |
| tree | 5f6182a364e5b97be7d889c4b4ebb5e3e89000be /src-3.0/GF | |
| parent | 43459c75c8f74662efd9cfea0cc64e55adc78a44 (diff) | |
Add GF.Speech.SRG.isExternalCat
Diffstat (limited to 'src-3.0/GF')
| -rw-r--r-- | src-3.0/GF/Speech/SRG.hs | 6 | ||||
| -rw-r--r-- | 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)] |
