summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/GF/Speech/PrGSL.hs16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/GF/Speech/PrGSL.hs b/src/GF/Speech/PrGSL.hs
index 259e7a023..c7cb283c6 100644
--- a/src/GF/Speech/PrGSL.hs
+++ b/src/GF/Speech/PrGSL.hs
@@ -77,23 +77,19 @@ cfgToGSL name start =
cfgRulesToGSLRule rs@(r:_) = GSLRule (ruleCat r) (map ruleRhs rs)
mkCatNames :: GSLGrammar -> CatNames
-mkCatNames (GSLGrammar name start rules) =
- listToFM (zipWith dotIfStart lhsCats names)
+mkCatNames (GSLGrammar name start rules) = listToFM (zip lhsCats names)
where names = [name ++ "_" ++ show x | x <- [0..]]
lhsCats = [ c | GSLRule c _ <- rules]
- dotIfStart c n | c == start = (c, "." ++ n)
- | otherwise = (c, n)
prGSLGrammar :: CatNames -> GSLGrammar -> ShowS
prGSLGrammar names (GSLGrammar name start g) =
- header . unlinesS (map prGSLrule g)
+ header . mainCat . unlinesS (map prGSLrule g)
where
header = showString ";GSL2.0" . nl
- . comments ["Nuance speech synthesis grammar for " ++ name,
- "Generated by GF",
- "Start category: " ++ start
- ++ " (" ++ prGSLCat start ")"]
- . nl . nl
+ . comments ["Nuance speech recognition grammar for " ++ name,
+ "Generated by GF"] . nl . nl
+ mainCat = showString ("; Start category: " ++ start) . nl
+ . showString ".MAIN " . prGSLCat start . nl . nl
prGSLrule (GSLRule cat rhs) =
showString "; " . prtS cat . nl
. prGSLCat cat . sp . wrap "[" (unwordsS (map prGSLAlt rhs)) "]" . nl