diff options
| author | aarne <aarne@cs.chalmers.se> | 2008-06-25 16:54:35 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2008-06-25 16:54:35 +0000 |
| commit | e9e80fc389365e24d4300d7d5390c7d833a96c50 (patch) | |
| tree | f0b58473adaa670bd8fc52ada419d8cad470ee03 /src/GFC.hs | |
| parent | b96b36f43de3e2f8b58d5f539daa6f6d47f25870 (diff) | |
changed names of resource-1.3; added a note on homepage on release
Diffstat (limited to 'src/GFC.hs')
| -rw-r--r-- | src/GFC.hs | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/GFC.hs b/src/GFC.hs new file mode 100644 index 000000000..17c95eb30 --- /dev/null +++ b/src/GFC.hs @@ -0,0 +1,44 @@ +module GFC (mainGFC) where +-- module Main where + +import PGF +import PGF.CId +import PGF.Data +import PGF.Raw.Parse +import PGF.Raw.Convert +import GF.Compile +import GF.Compile.Export +import GF.Infra.UseIO +import GF.Infra.Option +import GF.Data.ErrM + +import Data.Maybe +import System.FilePath + + +mainGFC :: Options -> [FilePath] -> IOE () +mainGFC opts fs = + do gr <- batchCompile opts fs + let cnc = justModuleName (last fs) + if flag optStopAfterPhase opts == Compile + then return () + else do pgf <- link opts cnc gr + writeOutputs opts pgf + +writeOutputs :: Options -> PGF -> IOE () +writeOutputs opts pgf = + sequence_ [writeOutput opts name str + | fmt <- flag optOutputFormats opts, + (name,str) <- exportPGF opts fmt pgf] + +writeOutput :: Options -> FilePath-> String -> IOE () +writeOutput opts file str = + do let path = case flag optOutputDir opts of + Nothing -> file + Just dir -> dir </> file + writeOutputFile path str + +writeOutputFile :: FilePath -> String -> IOE () +writeOutputFile outfile output = ioeIO $ + do writeFile outfile output + putStrLn $ "wrote file " ++ outfile |
