forked from GitHub/gf-core
VoiceXML printer no takes Options and StateGrammar, like SRG printers do.
This commit is contained in:
@@ -15,11 +15,13 @@ import GF.Canon.AbsGFC (Term)
|
|||||||
import GF.Canon.PrintGFC (printTree)
|
import GF.Canon.PrintGFC (printTree)
|
||||||
import GF.Canon.CMacros (noMark, strsFromTerm)
|
import GF.Canon.CMacros (noMark, strsFromTerm)
|
||||||
import GF.Canon.Unlex (formatAsText)
|
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.Data.Str (sstrV)
|
||||||
import GF.Grammar.Macros hiding (assign,strsFromTerm)
|
import GF.Grammar.Macros hiding (assign,strsFromTerm)
|
||||||
import GF.Grammar.Grammar (Fun)
|
import GF.Grammar.Grammar (Fun)
|
||||||
import GF.Grammar.Values (Tree)
|
import GF.Grammar.Values (Tree)
|
||||||
|
import GF.Infra.Option (Options)
|
||||||
import GF.UseGrammar.GetTree (string2treeErr)
|
import GF.UseGrammar.GetTree (string2treeErr)
|
||||||
import GF.UseGrammar.Linear (linTree2strings)
|
import GF.UseGrammar.Linear (linTree2strings)
|
||||||
|
|
||||||
@@ -36,11 +38,13 @@ import Data.Maybe (fromMaybe)
|
|||||||
import Debug.Trace
|
import Debug.Trace
|
||||||
|
|
||||||
-- | the main function
|
-- | the main function
|
||||||
grammar2vxml :: Ident -> StateGrammar -> String
|
grammar2vxml :: Options -> StateGrammar -> String
|
||||||
grammar2vxml startcat gr = showsXMLDoc (skel2vxml name language startcat gr' qs) ""
|
grammar2vxml opts s = showsXMLDoc (skel2vxml name language startcat gr' qs) ""
|
||||||
where (name, gr') = vSkeleton (stateGrammarST gr)
|
where (name, gr') = vSkeleton (stateGrammarST s)
|
||||||
qs = catQuestions gr (map fst gr')
|
qs = catQuestions s (map fst gr')
|
||||||
language = "en" -- FIXME: use speechLanguage tag
|
language = "en" -- FIXME: use speechLanguage tag
|
||||||
|
startcat = cfCat2Ident (startCatStateOpts opts s)
|
||||||
|
|
||||||
--
|
--
|
||||||
-- * VSkeleton: a simple description of the abstract syntax.
|
-- * VSkeleton: a simple description of the abstract syntax.
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -254,8 +254,7 @@ customGrammarPrinter =
|
|||||||
,(strCI "srgs_xml", SRGS.srgsXmlPrinter Nothing False)
|
,(strCI "srgs_xml", SRGS.srgsXmlPrinter Nothing False)
|
||||||
,(strCI "srgs_xml_prob", SRGS.srgsXmlPrinter Nothing True)
|
,(strCI "srgs_xml_prob", SRGS.srgsXmlPrinter Nothing True)
|
||||||
,(strCI "srgs_xml_sisr_old", SRGS.srgsXmlPrinter (Just SISR.SISROld) False)
|
,(strCI "srgs_xml_sisr_old", SRGS.srgsXmlPrinter (Just SISR.SISROld) False)
|
||||||
,(strCI "vxml", \opts s -> let start = cfCat2Ident (startCatStateOpts opts s)
|
,(strCI "vxml", grammar2vxml)
|
||||||
in grammar2vxml start s)
|
|
||||||
,(strCI "slf", slfPrinter)
|
,(strCI "slf", slfPrinter)
|
||||||
,(strCI "slf_graphviz", slfGraphvizPrinter)
|
,(strCI "slf_graphviz", slfGraphvizPrinter)
|
||||||
,(strCI "slf_sub", slfSubPrinter)
|
,(strCI "slf_sub", slfSubPrinter)
|
||||||
|
|||||||
Reference in New Issue
Block a user