diff options
| author | aarne <aarne@cs.chalmers.se> | 2007-11-05 13:48:51 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2007-11-05 13:48:51 +0000 |
| commit | 2a83f299b4fe25ee876fdd051de7f8980b216ab4 (patch) | |
| tree | 12795c7b121ce0405d70bd6cb9654b74c75cbe38 /src/GF/Devel | |
| parent | 7eecf7f943ecae758a18ef0b7b268c383c2a10c4 (diff) | |
unionGFCC, to put together GFCC grs with same abstract
Diffstat (limited to 'src/GF/Devel')
| -rw-r--r-- | src/GF/Devel/GFC.hs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/GF/Devel/GFC.hs b/src/GF/Devel/GFC.hs index 206d54206..b8c4277f3 100644 --- a/src/GF/Devel/GFC.hs +++ b/src/GF/Devel/GFC.hs @@ -6,6 +6,7 @@ import GF.Devel.GFCCtoJS import GF.GFCC.OptimizeGFCC import GF.GFCC.CheckGFCC import GF.GFCC.DataGFCC +import GF.GFCC.ParGFCC import GF.Devel.UseIO import GF.Infra.Option @@ -31,6 +32,14 @@ main = do writeFile js (gfcc2js gc) putStrLn $ "wrote file " ++ js else return () + + -- gfc -o target.gfcc source_1.gfcc ... source_n.gfcc + _ | all ((=="gfcc") . fileSuffix) fs && oElem (iOpt "o") opts -> do + let target:sources = fs + gfccs <- mapM file2gfcc sources + let gfcc = foldl1 unionGFCC gfccs + writeFile target (printGFCC gfcc) + _ -> do mapM_ (batchCompile opts) (map return fs) putStrLn "Done." @@ -40,3 +49,5 @@ check gfcc = do putStrLn $ if b then "OK" else "Corrupted GFCC" return gc +file2gfcc f = + readFileIf f >>= err (error) (return . mkGFCC) . pGrammar . myLexer |
