diff options
| author | aarne <unknown> | 2003-11-03 16:27:55 +0000 |
|---|---|---|
| committer | aarne <unknown> | 2003-11-03 16:27:55 +0000 |
| commit | 94326929b144913642121bef8f8ecc98feb992e7 (patch) | |
| tree | 07d59cc33cbef2ac79c6f3f573b9718c51322e7a /src/GF/Infra | |
| parent | 2728e6e7ceec92c7f781368b4a523b37e5dee3b9 (diff) | |
Fixed several things, e.g. tokenizer.
Diffstat (limited to 'src/GF/Infra')
| -rw-r--r-- | src/GF/Infra/Modules.hs | 3 | ||||
| -rw-r--r-- | src/GF/Infra/Option.hs | 5 | ||||
| -rw-r--r-- | src/GF/Infra/ReadFiles.hs | 10 |
3 files changed, 18 insertions, 0 deletions
diff --git a/src/GF/Infra/Modules.hs b/src/GF/Infra/Modules.hs index ed3e2db83..5d2e0fd15 100644 --- a/src/GF/Infra/Modules.hs +++ b/src/GF/Infra/Modules.hs @@ -63,6 +63,9 @@ updateModule (Module mt ms fs me ops js) i t = replaceJudgements :: Module i f t -> BinTree (i,t) -> Module i f t replaceJudgements (Module mt ms fs me ops _) js = Module mt ms fs me ops js +allFlags :: MGrammar i f a -> [f] +allFlags gr = concat $ map flags $ reverse [m | (_, ModMod m) <- modules gr] + data MainGrammar i = MainGrammar { mainAbstract :: i , mainConcretes :: [MainConcreteSpec i] diff --git a/src/GF/Infra/Option.hs b/src/GF/Infra/Option.hs index 59e9f352a..100ded735 100644 --- a/src/GF/Infra/Option.hs +++ b/src/GF/Infra/Option.hs @@ -59,6 +59,9 @@ addOption o (Opts os) = iOpts (o:os) addOptions (Opts os) os0 = foldr addOption os0 os +concatOptions :: [Options] -> Options +concatOptions = foldr addOptions noOptions + removeOption :: Option -> Options -> Options removeOption o (Opts os) = iOpts (filter (/=o) os) @@ -152,6 +155,8 @@ doTrace = iOpt "tr" noCPU = iOpt "nocpu" doCompute = iOpt "c" optimizeCanon = iOpt "opt" +stripQualif = iOpt "strip" +nostripQualif = iOpt "nostrip" -- mainly for stand-alone useUnicode = iOpt "unicode" diff --git a/src/GF/Infra/ReadFiles.hs b/src/GF/Infra/ReadFiles.hs index bc2706b49..285665747 100644 --- a/src/GF/Infra/ReadFiles.hs +++ b/src/GF/Infra/ReadFiles.hs @@ -2,11 +2,13 @@ module ReadFiles where import Arch (selectLater, modifiedFiles, ModTime) +import Option import Operations import UseIO import System import Char import Monad +import List -- make analysis for GF grammar modules. AR 11/6/2003 @@ -122,6 +124,14 @@ lexs s = x:xs where (x,y) = head $ lex s xs = if null y then [] else lexs y +-- options can be passed to the compiler by comments in --#, in the main file + +getOptionsFromFile :: FilePath -> IO Options +getOptionsFromFile file = do + s <- readFileIf file + let ls = filter (isPrefixOf "--#") $ lines s + return $ fst $ getOptions "-" $ map (unwords . words . drop 3) ls + -- old GF tolerated newlines in quotes. No more supported! fixNewlines s = case s of '"':cs -> '"':mk cs |
