summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbringert <bringert@cs.chalmers.se>2007-01-05 15:47:53 +0000
committerbringert <bringert@cs.chalmers.se>2007-01-05 15:47:53 +0000
commit76b852f510132b186fb8323ad85fce42605b29e3 (patch)
tree290f466f4b088069c093bfd6b3844feeda56d3f8 /src
parent6ee7296f9dd5290bb3ee581403a18464444ab28b (diff)
VoiceXML printer no takes Options and StateGrammar, like SRG printers do.
Diffstat (limited to 'src')
-rw-r--r--src/GF/Speech/GrammarToVoiceXML.hs14
-rw-r--r--src/GF/UseGrammar/Custom.hs3
2 files changed, 10 insertions, 7 deletions
diff --git a/src/GF/Speech/GrammarToVoiceXML.hs b/src/GF/Speech/GrammarToVoiceXML.hs
index 1f9fe27de..3e11c3ac4 100644
--- a/src/GF/Speech/GrammarToVoiceXML.hs
+++ b/src/GF/Speech/GrammarToVoiceXML.hs
@@ -15,11 +15,13 @@ import GF.Canon.AbsGFC (Term)
import GF.Canon.PrintGFC (printTree)
import GF.Canon.CMacros (noMark, strsFromTerm)
import GF.Canon.Unlex (formatAsText)
-import GF.Compile.ShellState (StateGrammar,stateGrammarST,cncId,grammar)
+import GF.CF.CFIdent (cfCat2Ident)
+import GF.Compile.ShellState (StateGrammar,stateGrammarST,cncId,grammar,startCatStateOpts)
import GF.Data.Str (sstrV)
import GF.Grammar.Macros hiding (assign,strsFromTerm)
import GF.Grammar.Grammar (Fun)
import GF.Grammar.Values (Tree)
+import GF.Infra.Option (Options)
import GF.UseGrammar.GetTree (string2treeErr)
import GF.UseGrammar.Linear (linTree2strings)
@@ -36,11 +38,13 @@ import Data.Maybe (fromMaybe)
import Debug.Trace
-- | the main function
-grammar2vxml :: Ident -> StateGrammar -> String
-grammar2vxml startcat gr = showsXMLDoc (skel2vxml name language startcat gr' qs) ""
- where (name, gr') = vSkeleton (stateGrammarST gr)
- qs = catQuestions gr (map fst gr')
+grammar2vxml :: Options -> StateGrammar -> String
+grammar2vxml opts s = showsXMLDoc (skel2vxml name language startcat gr' qs) ""
+ where (name, gr') = vSkeleton (stateGrammarST s)
+ qs = catQuestions s (map fst gr')
language = "en" -- FIXME: use speechLanguage tag
+ startcat = cfCat2Ident (startCatStateOpts opts s)
+
--
-- * VSkeleton: a simple description of the abstract syntax.
--
diff --git a/src/GF/UseGrammar/Custom.hs b/src/GF/UseGrammar/Custom.hs
index 291b8405d..ca2b704b6 100644
--- a/src/GF/UseGrammar/Custom.hs
+++ b/src/GF/UseGrammar/Custom.hs
@@ -254,8 +254,7 @@ customGrammarPrinter =
,(strCI "srgs_xml", SRGS.srgsXmlPrinter Nothing False)
,(strCI "srgs_xml_prob", SRGS.srgsXmlPrinter Nothing True)
,(strCI "srgs_xml_sisr_old", SRGS.srgsXmlPrinter (Just SISR.SISROld) False)
- ,(strCI "vxml", \opts s -> let start = cfCat2Ident (startCatStateOpts opts s)
- in grammar2vxml start s)
+ ,(strCI "vxml", grammar2vxml)
,(strCI "slf", slfPrinter)
,(strCI "slf_graphviz", slfGraphvizPrinter)
,(strCI "slf_sub", slfSubPrinter)