diff options
Diffstat (limited to 'src/GF/Speech/GrammarToVoiceXML.hs')
| -rw-r--r-- | src/GF/Speech/GrammarToVoiceXML.hs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/GF/Speech/GrammarToVoiceXML.hs b/src/GF/Speech/GrammarToVoiceXML.hs index 1e3916953..f61e75f24 100644 --- a/src/GF/Speech/GrammarToVoiceXML.hs +++ b/src/GF/Speech/GrammarToVoiceXML.hs @@ -21,10 +21,9 @@ import GF.Data.XML import Data.List (isPrefixOf, find, intersperse) -- | the main function -grammar2vxml :: GFC.CanonGrammar -> String -grammar2vxml gr = showsXMLDoc (skel2vxml name startcat gr') "" +grammar2vxml :: String -> GFC.CanonGrammar -> String +grammar2vxml startcat gr = showsXMLDoc (skel2vxml name startcat gr') "" where (name, gr') = vSkeleton gr - startcat = "Order" -- FIXME type VIdent = String @@ -109,7 +108,7 @@ cat2form :: String -> VIdent -> [(VIdent, [VIdent])] -> XML cat2form gr cat fs = form cat [var "value" (Just "'?'"), formDebug cat, block [if_ "value != '?'" [assign cat "value"]], - field cat [] [promptString ("quest_"++cat), + field cat [] [promptString (catQuestion cat), grammar (gr++"#"++cat), nomatch [Data "I didn't understand you.", reprompt], help [Data ("help_"++cat)], @@ -120,6 +119,10 @@ cat2form gr cat fs = where subDone = [assign cat "sub.value", return_ [cat]] feedback = [] +catQuestion :: VIdent -> String +catQuestion cat = questFun + where questFun = "quest_"++cat + fun2form :: String -> VIdent -> [VIdent] -> XML fun2form gr fun args = form fun ([var "value" Nothing] ++ [formDebug fun] |
