diff options
| author | bjorn <bjorn@bringert.net> | 2008-06-03 19:20:18 +0000 |
|---|---|---|
| committer | bjorn <bjorn@bringert.net> | 2008-06-03 19:20:18 +0000 |
| commit | 2ee8ab8a714a1b2b4cf906583c04df1ee38b2cdc (patch) | |
| tree | 2047f21c3c389a5d7a942e9d7ee24c8108935a18 /src-3.0/GF/Compile | |
| parent | 61ccd948d3798dc0b74dd1d82ac6e6dc8ef49840 (diff) | |
Added options to support SRG printing.
Diffstat (limited to 'src-3.0/GF/Compile')
| -rw-r--r-- | src-3.0/GF/Compile/Export.hs | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src-3.0/GF/Compile/Export.hs b/src-3.0/GF/Compile/Export.hs index d6780147e..81d9e3140 100644 --- a/src-3.0/GF/Compile/Export.hs +++ b/src-3.0/GF/Compile/Export.hs @@ -1,11 +1,13 @@ module GF.Compile.Export where -import PGF.Data (PGF) +import PGF.CId +import PGF.Data (PGF(..)) import PGF.Raw.Print (printTree) import PGF.Raw.Convert (fromPGF) import GF.Compile.GFCCtoHaskell import GF.Compile.GFCCtoJS import GF.Infra.Option +import GF.Speech.SRGS import GF.Text.UTF8 -- top-level access to code generation @@ -16,10 +18,18 @@ prPGF :: OutputFormat -- module name. -> String prPGF fmt gr name = case fmt of - FmtPGF -> printPGF gr - FmtJavaScript -> pgf2js gr - FmtHaskell -> grammar2haskell gr name - FmtHaskellGADT -> grammar2haskellGADT gr name + FmtPGF -> printPGF gr + FmtJavaScript -> pgf2js gr + FmtHaskell -> grammar2haskell gr name + FmtHaskell_GADT -> grammar2haskellGADT gr name + FmtSRGS_XML -> srgsXmlPrinter Nothing gr (outputConcr gr) + +-- | Get the name of the concrete syntax to generate output from. +-- FIXME: there should be an option to change this. +outputConcr :: PGF -> CId +outputConcr pgf = case cncnames pgf of + [] -> error "No concrete syntax." + cnc:_ -> cnc printPGF :: PGF -> String printPGF = encodeUTF8 . printTree . fromPGF |
