forked from GitHub/gf-core
gf3 should not exit if there is a syntax error in the file
This commit is contained in:
@@ -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
|
||||
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
|
||||
Reference in New Issue
Block a user