summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbringert <bringert@cs.chalmers.se>2006-04-27 09:30:59 +0000
committerbringert <bringert@cs.chalmers.se>2006-04-27 09:30:59 +0000
commite1ea20277cb19ef73e7380898942e4bb77cbd183 (patch)
tree82e38a55fc1ed74b8e7a4ec6cfbe7e07c16d1ce9
parent1db0885429d7449e21e8d27e18d127dc02e5b2a0 (diff)
VoiceXML generation: use cond attribute with blocks, instead of having ifs inside. Recommended by OptimSys support.
-rw-r--r--src/GF/Speech/GrammarToVoiceXML.hs9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/GF/Speech/GrammarToVoiceXML.hs b/src/GF/Speech/GrammarToVoiceXML.hs
index 52afa3ec0..08ed8f705 100644
--- a/src/GF/Speech/GrammarToVoiceXML.hs
+++ b/src/GF/Speech/GrammarToVoiceXML.hs
@@ -154,13 +154,13 @@ catForms gr qs cat fs =
cat2form :: String -> CatQuestions -> VIdent -> [(VIdent, [VIdent])] -> XML
cat2form gr qs cat fs =
form cat [var "value" (Just "'?'"), formDebug cat,
- block [if_ "value != '?'" [assign cat "value"]],
+ blockCond "value != '?'" [assign cat "value"],
field cat [] [promptString (getCatQuestion cat qs),
grammar (gr++"#"++cat),
nomatch [Data "I didn't understand you.", reprompt],
help [Data ("help_"++cat)],
filled [] [if_else (cat ++ " == '?'") [reprompt] feedback]],
- block [if_ "debug == 1" [prompt [Data (cat ++ " = "), value ("dump("++cat++")")]]],
+ blockCond "debug == 1" [prompt [Data (cat ++ " = "), value ("dump("++cat++")")]],
subdialog "sub" [("srcexpr","'#'+"++cat++".name")]
[param "value" cat, filled [] subDone]]
where subDone = [assign cat "sub.value", return_ [cat]]
@@ -179,7 +179,7 @@ fun2form gr fun args =
filled [] [assign ("value."++a) (a++"."++t)]]
ret = block [return_ ["value"]]
-formDebug id = block [if_ "debug == 1" [prompt [Data ("Entering form " ++ id ++ ". value = "), value "dump(value)"]]]
+formDebug id = blockCond "debug == 1" [prompt [Data ("Entering form " ++ id ++ ". value = "), value "dump(value)"]]
--
-- * VoiceXML stuff
@@ -238,6 +238,9 @@ return_ names = Tag "return" [("namelist", unwords names)] []
block :: [XML] -> XML
block = Tag "block" []
+blockCond :: String -> [XML] -> XML
+blockCond cond = Tag "block" [("cond", cond)]
+
throw :: String -> String -> XML
throw event msg = Tag "throw" [("event",event),("message",msg)] []