From a47fcbcbf23ead0cf3d7144ee23906bd5f6cb440 Mon Sep 17 00:00:00 2001 From: bjorn Date: Mon, 16 Jun 2008 16:44:33 +0000 Subject: Handled renaming external SRG categories centrally. --- src-3.0/GF/Speech/SRGS_XML.hs | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'src-3.0/GF/Speech/SRGS_XML.hs') diff --git a/src-3.0/GF/Speech/SRGS_XML.hs b/src-3.0/GF/Speech/SRGS_XML.hs index e78a702da..33e2d0374 100644 --- a/src-3.0/GF/Speech/SRGS_XML.hs +++ b/src-3.0/GF/Speech/SRGS_XML.hs @@ -32,19 +32,15 @@ srgsXmlNonRecursivePrinter pgf cnc = prSrgsXml Nothing $ makeNonRecursiveSRG pgf prSrgsXml :: Maybe SISRFormat -> SRG -> String prSrgsXml sisr srg = showXMLDoc (optimizeSRGS xmlGr) where - xmlGr = grammar sisr (externalCat (srgStartCat srg)) (srgLanguage srg) $ + xmlGr = grammar sisr (srgStartCat srg) (srgLanguage srg) $ [meta "description" ("SRGS XML speech recognition grammar for " ++ srgName srg ++ "."), meta "generator" "Grammatical Framework"] ++ map ruleToXML (srgRules srg) - ruleToXML (SRGRule cat alts) - | isExternalCat srg cat = Tag "rule" [("id",externalCat cat),("scope","public")] (prRhs alts) - | otherwise = Tag "rule" [("id",cat)] (prRhs alts) + ruleToXML (SRGRule cat alts) = Tag "rule" ([("id",cat)]++pub) (prRhs alts) + where pub = if isExternalCat srg cat then [("scope","public")] else [] prRhs rhss = [oneOf (map (mkProd sisr) rhss)] -externalCat :: Cat -> Cat -externalCat c = c ++ "_cat" - mkProd :: Maybe SISRFormat -> SRGAlt -> XML mkProd sisr (SRGAlt mp n rhs) = Tag "item" [] (ti ++ [x] ++ tf) where x = mkItem sisr n rhs -- cgit v1.2.3