From 055c0d0d5a5bb0dc75904fe53df7f2e4f5732a8f Mon Sep 17 00:00:00 2001 From: aarne Date: Wed, 21 May 2008 09:26:44 +0000 Subject: GF/src is now for 2.9, and the new sources are in src-3.0 - keep it this way until the release of GF 3 --- src-3.0/GF/Command/Importing.hs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src-3.0/GF/Command/Importing.hs (limited to 'src-3.0/GF/Command/Importing.hs') diff --git a/src-3.0/GF/Command/Importing.hs b/src-3.0/GF/Command/Importing.hs new file mode 100644 index 000000000..a09ba8de6 --- /dev/null +++ b/src-3.0/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 -- cgit v1.2.3