summaryrefslogtreecommitdiff
path: root/src/compiler/GF/Compile.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/GF/Compile.hs')
-rw-r--r--src/compiler/GF/Compile.hs36
1 files changed, 16 insertions, 20 deletions
diff --git a/src/compiler/GF/Compile.hs b/src/compiler/GF/Compile.hs
index 6cebd2196..207b6cb7c 100644
--- a/src/compiler/GF/Compile.hs
+++ b/src/compiler/GF/Compile.hs
@@ -1,4 +1,4 @@
-module GF.Compile (batchCompile, link, srcAbsName, compileToPGF, compileSourceGrammar) where
+module GF.Compile (batchCompile, link, srcAbsName, compileToPGF) where
import Prelude hiding (catch)
import GF.System.Catch
@@ -32,7 +32,7 @@ import qualified Data.Map as Map
--import qualified Data.Set as Set
import Data.List(nub)
import Data.Time(UTCTime)
-import Text.PrettyPrint
+import GF.Text.Pretty
import PGF.Internal(optimizePGF)
import PGF
@@ -59,7 +59,7 @@ batchCompile opts files = do
let cnc = identS (justModuleName (last files))
t = maximum . map fst $ Map.elems menv
return (cnc,t,gr)
-
+{-
-- to compile a set of modules, e.g. an old GF or a .cf file
compileSourceGrammar :: Options -> SourceGrammar -> IOE SourceGrammar
compileSourceGrammar opts gr = do
@@ -68,12 +68,12 @@ compileSourceGrammar opts gr = do
emptyCompileEnv
(modules gr)
return gr'
-
+-}
-- to output an intermediate stage
intermOut :: Options -> Dump -> Doc -> IOE ()
intermOut opts d doc
- | dump opts d = ePutStrLn (render (text "\n\n--#" <+> text (show d) $$ doc))
+ | dump opts d = ePutStrLn (render ("\n\n--#" <+> show d $$ doc))
| otherwise = return ()
warnOut opts warnings
@@ -118,8 +118,8 @@ compileModule opts1 env file = do
exists <- liftIO $ doesFileExist file1
if exists
then return file1
- else raise (render (text "None of these files exists:" $$ nest 2 (text file $$ text file1)))
- else raise (render (text "File" <+> text file <+> text "does not exist."))
+ else raise (render ("None of these files exists:" $$ nest 2 (file $$ file1)))
+ else raise (render ("File" <+> file <+> "does not exist."))
compileOne :: Options -> CompileEnv -> FullPath -> IOE CompileEnv
compileOne opts env@(_,srcgr,_) file = do
@@ -171,32 +171,28 @@ compileOne opts env@(_,srcgr,_) file = do
isConcr (_,m) = isModCnc m && mstatus m /= MSIncomplete
compileSourceModule :: Options -> FilePath -> CompileEnv -> Maybe FilePath -> SourceModule -> IOE CompileEnv
-compileSourceModule opts cwd env@(k,gr,_) mb_gfFile mo@(i,mi) = do
+compileSourceModule opts cwd env@(k,gr,_) mb_gfFile mo0@(i,mi) = do
- mo1 <- runPass Rebuild "" (rebuildModule cwd gr mo)
- mo1b <- runPass Extend "" (extendModule cwd gr mo1)
+ mo1a <- runPass Rebuild "" (rebuildModule cwd gr mo0)
+ mo1b <- runPass Extend "" (extendModule cwd gr mo1a)
case mo1b of
- (_,n) | not (isCompleteModule n) ->
- if tagsFlag then generateTags k mo1b else generateGFO k mo1b
+ (_,n) | not (isCompleteModule n) -> generateTagsOr generateGFO k mo1b
_ -> do
mo2 <- runPass Rename "renaming" $ renameModule cwd gr mo1b
mo3 <- runPass TypeCheck "type checking" $ checkModule opts cwd gr mo2
- if tagsFlag then generateTags k mo3 else compileCompleteModule k mo3
+ generateTagsOr compileCompleteModule k mo3
where
compileCompleteModule k mo3 = do
--- (k',mo3r:_) <- runPass2 (head.snd) Refresh "refreshing" $
--- refreshModule (k,gr) mo3
- let k' = k
- mo3r = mo3
- mo4 <- runPass2 id Optimize "optimizing" $ optimizeModule opts gr mo3r
+ mo4 <- runPass2 id Optimize "optimizing" $ optimizeModule opts gr mo3
mo5 <- if isModCnc (snd mo4) && flag optPMCFG opts
then runPass2' "generating PMCFG" $ generatePMCFG opts gr mb_gfFile mo4
else runPass2' "" $ return mo4
- generateGFO k' mo5
+ generateGFO k mo5
------------------------------
- tagsFlag = flag optTagsOnly opts
+ generateTagsOr compile =
+ if flag optTagsOnly opts then generateTags else compile
generateGFO k mo =
do let mb_gfo = fmap (gf2gfo opts) mb_gfFile