From 0ea2798b3cc9bf60e99e01089ea2eddba64a9cbf Mon Sep 17 00:00:00 2001 From: krasimir Date: Thu, 17 Apr 2008 12:50:51 +0000 Subject: gf3 should not exit if there is a syntax error in the file --- src/GF/Command/Importing.hs | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'src/GF/Command/Importing.hs') 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 -- cgit v1.2.3