diff options
| author | bjorn <bjorn@bringert.net> | 2008-06-02 15:32:01 +0000 |
|---|---|---|
| committer | bjorn <bjorn@bringert.net> | 2008-06-02 15:32:01 +0000 |
| commit | 5073ac4e7f4c24aa412ed3a3c3d719532df9f637 (patch) | |
| tree | e9e60a0b58800dcc71aee9df2361852105c25574 /src-3.0/GF/Compile | |
| parent | 20ea9ea5ec7c65ab01bff47d78f55e06b85fe79d (diff) | |
Honor the --name flag when generating output files. Set module name in generated Haskell modules correctly.
Diffstat (limited to 'src-3.0/GF/Compile')
| -rw-r--r-- | src-3.0/GF/Compile/Export.hs | 13 | ||||
| -rw-r--r-- | src-3.0/GF/Compile/GFCCtoHaskell.hs | 18 |
2 files changed, 18 insertions, 13 deletions
diff --git a/src-3.0/GF/Compile/Export.hs b/src-3.0/GF/Compile/Export.hs index ab5dcb393..d6780147e 100644 --- a/src-3.0/GF/Compile/Export.hs +++ b/src-3.0/GF/Compile/Export.hs @@ -10,13 +10,16 @@ import GF.Text.UTF8 -- top-level access to code generation -prPGF :: OutputFormat -> PGF -> String -prPGF fmt gr = case fmt of +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 - FmtHaskellGADT -> grammar2haskellGADT gr + FmtHaskell -> grammar2haskell gr name + FmtHaskellGADT -> grammar2haskellGADT gr name printPGF :: PGF -> String printPGF = encodeUTF8 . printTree . fromPGF - diff --git a/src-3.0/GF/Compile/GFCCtoHaskell.hs b/src-3.0/GF/Compile/GFCCtoHaskell.hs index 94210b65e..72e4cb922 100644 --- a/src-3.0/GF/Compile/GFCCtoHaskell.hs +++ b/src-3.0/GF/Compile/GFCCtoHaskell.hs @@ -27,24 +27,26 @@ import Data.List --(isPrefixOf, find, intersperse) import qualified Data.Map as Map -- | the main function -grammar2haskell :: PGF -> String -grammar2haskell gr = encodeUTF8 $ foldr (++++) [] $ - haskPreamble ++ [datatypes gr', gfinstances gr'] +grammar2haskell :: PGF + -> String -- ^ Module name. + -> String +grammar2haskell gr name = encodeUTF8 $ foldr (++++) [] $ + haskPreamble name ++ [datatypes gr', gfinstances gr'] where gr' = hSkeleton gr -grammar2haskellGADT :: PGF -> String -grammar2haskellGADT gr = encodeUTF8 $ foldr (++++) [] $ +grammar2haskellGADT :: PGF -> String -> String +grammar2haskellGADT gr name = encodeUTF8 $ foldr (++++) [] $ ["{-# OPTIONS_GHC -fglasgow-exts #-}"] ++ - haskPreamble ++ [datatypesGADT gr', gfinstances gr'] + haskPreamble name ++ [datatypesGADT gr', gfinstances gr'] where gr' = hSkeleton gr -- | by this you can prefix all identifiers with stg; the default is 'G' gId :: OIdent -> OIdent gId i = 'G':i -haskPreamble = +haskPreamble name = [ - "module GSyntax where", + "module " ++ name ++ " where", "", "import PGF.CId", "import PGF.Data", |
