diff options
Diffstat (limited to 'src/GF/Command/Importing.hs')
| -rw-r--r-- | src/GF/Command/Importing.hs | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/GF/Command/Importing.hs b/src/GF/Command/Importing.hs index 73589533d..31c4983dc 100644 --- a/src/GF/Command/Importing.hs +++ b/src/GF/Command/Importing.hs @@ -6,15 +6,22 @@ import GF.GFCC.API import GF.Devel.UseIO import GF.Infra.Option +import GF.Data.ErrM import Data.List (nubBy) -- import a grammar in an environment where it extends an existing grammar importGrammar :: MultiGrammar -> Options -> [FilePath] -> IO MultiGrammar -importGrammar mgr0 opts files = do - gfcc2 <- case fileSuffix (last files) of - s | elem s ["gf","gfo"] -> compileToGFCC opts files - "gfcc" -> - mapM file2gfcc files >>= return . foldl1 unionGFCC - let gfcc3 = unionGFCC (gfcc mgr0) gfcc2 - return $ MultiGrammar gfcc3
\ No newline at end of file +importGrammar mgr0 opts files = + case fileSuffix (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 print 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 |
