summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2007-09-21 07:37:47 +0000
committeraarne <aarne@cs.chalmers.se>2007-09-21 07:37:47 +0000
commit58d34eca14d02e6bb388521954938824bb0c8079 (patch)
tree10da358a774fffa902db48edb9638c9e8d528244 /src
parent58a87653cc5f03f8184faa81fa24c2c5eff0429a (diff)
gfc --make now works
Diffstat (limited to 'src')
-rw-r--r--src/GF/Devel/Compile.hs15
-rw-r--r--src/GF/Devel/GFC.hs7
-rw-r--r--src/GF/Devel/GrammarToGFCC.hs2
3 files changed, 7 insertions, 17 deletions
diff --git a/src/GF/Devel/Compile.hs b/src/GF/Devel/Compile.hs
index 0649760fe..916cb961e 100644
--- a/src/GF/Devel/Compile.hs
+++ b/src/GF/Devel/Compile.hs
@@ -9,8 +9,6 @@ import GF.Compile.Update
import GF.Grammar.Lookup
import GF.Infra.Modules
import GF.Devel.ReadFiles
---import GF.Compile.ShellState
---import GF.Compile.MkResource
-- the main compiler passes
import GF.Devel.GetGrammar
@@ -21,17 +19,8 @@ import GF.Grammar.Refresh
import GF.Compile.CheckGrammar
import GF.Compile.Optimize
import GF.Compile.Evaluate ----
---import GF.Compile.GrammarToCanon
---import GF.Compile.GrammarToGFCC -----
--import GF.Canon.Share
--import GF.Canon.Subexpressions (elimSubtermsMod,unSubelimModule)
---import GF.UseGrammar.Linear (unoptimizeCanonMod) ----
-
---import qualified GF.Canon.CanonToGrammar as CG
-
---import qualified GF.Canon.GFC as GFC
---import qualified GF.Canon.MkGFC as MkGFC
---import GF.Canon.GetGFC
import GF.Data.Operations
import GF.Devel.UseIO
@@ -84,8 +73,8 @@ compileModule opts1 env file = do
return e
compileEnvShSt :: CompileEnv -> [ModName] -> CompileEnv
-compileEnvShSt env@(_,sgr) fs = (0,sgr) where
- sgr = MGrammar [m | m@(i,_) <- modules sgr, notElem (prt i) $ map fileBody fs]
+compileEnvShSt env@(_,sgr) fs = (0,sgr2) where
+ sgr2 = MGrammar [m | m@(i,_) <- modules sgr, notElem (prt i) $ map fileBody fs]
compileOne :: Options -> CompileEnv -> FullPath -> IOE CompileEnv
compileOne opts env@(_,srcgr) file = do
diff --git a/src/GF/Devel/GFC.hs b/src/GF/Devel/GFC.hs
index 561d37060..eba212486 100644
--- a/src/GF/Devel/GFC.hs
+++ b/src/GF/Devel/GFC.hs
@@ -2,6 +2,7 @@ module Main where
import GF.Devel.Compile
import GF.Devel.GrammarToGFCC
+---import GF.Devel.PrGrammar ---
import System
@@ -12,9 +13,9 @@ main = do
"-help":[] -> putStrLn "usage: gfc (--make) FILES"
"--make":fs -> do
gr <- batchCompile fs
- putStrLn $ prGrammar2gfcc gr ---
---- writeFile "a.gfcc" $ prGrammar2gfcc gr
---- putStrLn "wrote file a.gfcc"
+ --- putStrLn $ prGrammar gr
+ writeFile "a.gfcc" $ prGrammar2gfcc gr
+ putStrLn "Wrote file a.gfcc."
_ -> do
mapM_ batchCompile (map return xx)
putStrLn "Done."
diff --git a/src/GF/Devel/GrammarToGFCC.hs b/src/GF/Devel/GrammarToGFCC.hs
index a6dabae1a..cbe8af891 100644
--- a/src/GF/Devel/GrammarToGFCC.hs
+++ b/src/GF/Devel/GrammarToGFCC.hs
@@ -38,7 +38,7 @@ canon2gfcc cgr@(M.MGrammar ((a,M.ModMod abm):cms)) =
cs = map (i2i . fst) cms
adefs = [C.Fun f' (mkType ty) (C.Tr (C.AC f') []) |
(f,AbsFun (Yes ty) _) <- tree2list (M.jments abm), let f' = i2i f]
- cncs = [C.Cnc (i2i a) (concr abm)]
+ cncs = [C.Cnc (i2i lang) (concr m) | (lang,M.ModMod m) <- cms]
concr mo = cats mo ++ lindefs mo ++
optConcrete
[C.Lin (i2i f) (mkTerm tr) |