blob: d6780147e0f337844231283433e6e5c48d788225 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
module GF.Compile.Export where
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.Text.UTF8
-- top-level access to code generation
prPGF :: OutputFormat
-> PGF
-> String -- ^ Output name, for example used for generated Haskell
-- module name.
-> String
prPGF fmt gr name = case fmt of
FmtPGF -> printPGF gr
FmtJavaScript -> pgf2js gr
FmtHaskell -> grammar2haskell gr name
FmtHaskellGADT -> grammar2haskellGADT gr name
printPGF :: PGF -> String
printPGF = encodeUTF8 . printTree . fromPGF
|