mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 03:32:51 -06:00
the -gfc option
This commit is contained in:
@@ -62,7 +62,7 @@ getAllFiles opts ps env file = do
|
|||||||
else do
|
else do
|
||||||
|
|
||||||
|
|
||||||
ds2 <- ioeIO $ mapM (selectFormat env) pds1
|
ds2 <- ioeIO $ mapM (selectFormat opts env) pds1
|
||||||
|
|
||||||
let ds4 = needCompile opts (map fst ds0) ds2
|
let ds4 = needCompile opts (map fst ds0) ds2
|
||||||
return ds4
|
return ds4
|
||||||
@@ -80,15 +80,19 @@ data CompStatus =
|
|||||||
|
|
||||||
-- for gfc, we also return ModTime to cope with earlier compilation of libs
|
-- for gfc, we also return ModTime to cope with earlier compilation of libs
|
||||||
|
|
||||||
selectFormat :: ModEnv -> (InitPath,ModName) ->
|
selectFormat :: Options -> ModEnv -> (InitPath,ModName) ->
|
||||||
IO (ModName,(InitPath,(CompStatus,Maybe ModTime)))
|
IO (ModName,(InitPath,(CompStatus,Maybe ModTime)))
|
||||||
selectFormat env (p,f) = do
|
|
||||||
|
selectFormat opts env (p,f) = do
|
||||||
let pf = prefixPathName p f
|
let pf = prefixPathName p f
|
||||||
let mtenv = lookup f env -- Nothing if f is not in env
|
let mtenv = lookup f env -- Nothing if f is not in env
|
||||||
let rtenv = lookup (resModName f) env
|
let rtenv = lookup (resModName f) env
|
||||||
|
let fromComp = oElem isCompiled opts -- i -gfc
|
||||||
mtgfc <- getModTime $ gfcFile pf
|
mtgfc <- getModTime $ gfcFile pf
|
||||||
mtgf <- getModTime $ gfFile pf
|
mtgf <- getModTime $ gfFile pf
|
||||||
let stat = case (rtenv,mtenv,mtgfc,mtgf) of
|
let stat = case (rtenv,mtenv,mtgfc,mtgf) of
|
||||||
|
(_,Just tenv,_,_) | fromComp -> (CSEnv, Just tenv)
|
||||||
|
(_,_,Just tgfc,_) | fromComp -> (CSRead,Just tgfc)
|
||||||
(Just tenv,_,_,Just tgf) | laterModTime tenv tgf -> (CSEnvR,Just tenv)
|
(Just tenv,_,_,Just tgf) | laterModTime tenv tgf -> (CSEnvR,Just tenv)
|
||||||
(_,Just tenv,_,Just tgf) | laterModTime tenv tgf -> (CSEnv, Just tenv)
|
(_,Just tenv,_,Just tgf) | laterModTime tenv tgf -> (CSEnv, Just tenv)
|
||||||
(_,_,Just tgfc,Just tgf) | laterModTime tgfc tgf -> (CSRead,Just tgfc)
|
(_,_,Just tgfc,Just tgf) | laterModTime tgfc tgf -> (CSRead,Just tgfc)
|
||||||
@@ -96,7 +100,6 @@ selectFormat env (p,f) = do
|
|||||||
_ -> (CSComp,Nothing)
|
_ -> (CSComp,Nothing)
|
||||||
return $ (f, (p,stat))
|
return $ (f, (p,stat))
|
||||||
|
|
||||||
|
|
||||||
needCompile :: Options ->
|
needCompile :: Options ->
|
||||||
[ModuleHeader] ->
|
[ModuleHeader] ->
|
||||||
[(ModName,(InitPath,(CompStatus,Maybe ModTime)))] -> [FullPath]
|
[(ModName,(InitPath,(CompStatus,Maybe ModTime)))] -> [FullPath]
|
||||||
|
|||||||
@@ -56,7 +56,8 @@ txtHelpFile =
|
|||||||
"\n -old old: parse in GF<2.0 format (not necessary)" ++
|
"\n -old old: parse in GF<2.0 format (not necessary)" ++
|
||||||
"\n -v verbose: give lots of messages " ++
|
"\n -v verbose: give lots of messages " ++
|
||||||
"\n -s silent: don't give error messages" ++
|
"\n -s silent: don't give error messages" ++
|
||||||
"\n -src source: ignore precompiled gfc and gfr files" ++
|
"\n -src from source: ignore precompiled gfc and gfr files" ++
|
||||||
|
"\n -gfc from gfc: use compiled modules whenever they exist" ++
|
||||||
"\n -retain retain operations: read resource modules (needed in comm cc) " ++
|
"\n -retain retain operations: read resource modules (needed in comm cc) " ++
|
||||||
"\n -nocf don't build context-free grammar (thus no parser)" ++
|
"\n -nocf don't build context-free grammar (thus no parser)" ++
|
||||||
"\n -nocheckcirc don't eliminate circular rules from CF " ++
|
"\n -nocheckcirc don't eliminate circular rules from CF " ++
|
||||||
|
|||||||
@@ -169,7 +169,7 @@ optionsOfCommand co = case co of
|
|||||||
CSetFlag -> both "utf8 table struct record all multi"
|
CSetFlag -> both "utf8 table struct record all multi"
|
||||||
"cat lang lexer parser number depth rawtrees unlexer optimize path conversion printer"
|
"cat lang lexer parser number depth rawtrees unlexer optimize path conversion printer"
|
||||||
|
|
||||||
CImport _ -> both "old v s src retain nocf nocheckcirc cflexer noemit o ex prob"
|
CImport _ -> both "old v s src gfc retain nocf nocheckcirc cflexer noemit o ex prob"
|
||||||
"abs cnc res path optimize conversion cat probs noparse"
|
"abs cnc res path optimize conversion cat probs noparse"
|
||||||
CRemoveLanguage _ -> none
|
CRemoveLanguage _ -> none
|
||||||
CEmptyState -> none
|
CEmptyState -> none
|
||||||
|
|||||||
@@ -27,7 +27,8 @@ i, import: i File
|
|||||||
-old old: parse in GF<2.0 format (not necessary)
|
-old old: parse in GF<2.0 format (not necessary)
|
||||||
-v verbose: give lots of messages
|
-v verbose: give lots of messages
|
||||||
-s silent: don't give error messages
|
-s silent: don't give error messages
|
||||||
-src source: ignore precompiled gfc and gfr files
|
-src from source: ignore precompiled gfc and gfr files
|
||||||
|
-gfc from gfc: use compiled modules whenever they exist
|
||||||
-retain retain operations: read resource modules (needed in comm cc)
|
-retain retain operations: read resource modules (needed in comm cc)
|
||||||
-nocf don't build context-free grammar (thus no parser)
|
-nocf don't build context-free grammar (thus no parser)
|
||||||
-nocheckcirc don't eliminate circular rules from CF
|
-nocheckcirc don't eliminate circular rules from CF
|
||||||
|
|||||||
Reference in New Issue
Block a user