VoiceXML printer no takes Options and StateGrammar, like SRG printers do.

This commit is contained in:
bringert
2007-01-05 15:47:53 +00:00
parent 6ee7296f9d
commit 76b852f510
2 changed files with 10 additions and 7 deletions

View File

@@ -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.
--

View File

@@ -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)