summaryrefslogtreecommitdiff
path: root/src-3.0/GF/GFCC
diff options
context:
space:
mode:
authorkr.angelov <kr.angelov@chalmers.se>2008-05-22 15:41:17 +0000
committerkr.angelov <kr.angelov@chalmers.se>2008-05-22 15:41:17 +0000
commitd7bad708658f40cfb5a54dbd9836cc7c6035635a (patch)
treedeeb7f67a5b7ebcc3813c9b0f2a446a220f57bdf /src-3.0/GF/GFCC
parent359647445a851e3d6fc8b2071cada614aacda11e (diff)
move GF.Devel.PrintGFCC to GF.GFCC.PrintGFCC
Diffstat (limited to 'src-3.0/GF/GFCC')
-rw-r--r--src-3.0/GF/GFCC/PrintGFCC.hs21
1 files changed, 21 insertions, 0 deletions
diff --git a/src-3.0/GF/GFCC/PrintGFCC.hs b/src-3.0/GF/GFCC/PrintGFCC.hs
new file mode 100644
index 000000000..d0dde05f4
--- /dev/null
+++ b/src-3.0/GF/GFCC/PrintGFCC.hs
@@ -0,0 +1,21 @@
+module GF.GFCC.PrintGFCC where
+
+import GF.GFCC.DataGFCC (GFCC)
+import GF.GFCC.Raw.ConvertGFCC (fromGFCC)
+import GF.GFCC.Raw.PrintGFCCRaw (printTree)
+import GF.Devel.GFCCtoHaskell
+import GF.Devel.GFCCtoJS
+import GF.Text.UTF8
+
+-- top-level access to code generation
+
+prGFCC :: String -> GFCC -> String
+prGFCC printer gr = case printer of
+ "haskell" -> grammar2haskell gr
+ "haskell_gadt" -> grammar2haskellGADT gr
+ "js" -> gfcc2js gr
+ _ -> printGFCC gr
+
+printGFCC :: GFCC -> String
+printGFCC = encodeUTF8 . printTree . fromGFCC
+