diff options
| author | aarne <aarne@cs.chalmers.se> | 2008-05-20 11:47:44 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2008-05-20 11:47:44 +0000 |
| commit | 31bf84122b21efb444aa8d055472e166ffb90783 (patch) | |
| tree | 1f051909336f1534346bcccde8dda59beab02f64 /src-2.9/GF/Command/Importing.hs | |
| parent | 74f048dcf41de3540778de54dfa7541fa5b39c46 (diff) | |
moved all old source code to src-2.9 ; src will be for GF 3 development
Diffstat (limited to 'src-2.9/GF/Command/Importing.hs')
| -rw-r--r-- | src-2.9/GF/Command/Importing.hs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src-2.9/GF/Command/Importing.hs b/src-2.9/GF/Command/Importing.hs new file mode 100644 index 000000000..a09ba8de6 --- /dev/null +++ b/src-2.9/GF/Command/Importing.hs @@ -0,0 +1,28 @@ +module GF.Command.Importing (importGrammar) where + +import GF.Compile.API +import GF.GFCC.DataGFCC +import GF.GFCC.API + +import GF.Devel.UseIO +import GF.Infra.Option +import GF.Data.ErrM + +import Data.List (nubBy) +import System.FilePath + +-- import a grammar in an environment where it extends an existing grammar +importGrammar :: MultiGrammar -> Options -> [FilePath] -> IO MultiGrammar +importGrammar mgr0 opts files = + case takeExtensions (last files) of + s | elem s [".gf",".gfo"] -> do + res <- appIOE $ compileToGFCC opts files + case res of + Ok gfcc2 -> do let gfcc3 = unionGFCC (gfcc mgr0) gfcc2 + return $ MultiGrammar gfcc3 + Bad msg -> do putStrLn msg + return mgr0 + ".gfcc" -> do + gfcc2 <- mapM file2gfcc files >>= return . foldl1 unionGFCC + let gfcc3 = unionGFCC (gfcc mgr0) gfcc2 + return $ MultiGrammar gfcc3
\ No newline at end of file |
