mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
Use .MAIN for the start category.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user