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)