diff options
| author | kr.angelov <kr.angelov@chalmers.se> | 2008-05-22 14:32:49 +0000 |
|---|---|---|
| committer | kr.angelov <kr.angelov@chalmers.se> | 2008-05-22 14:32:49 +0000 |
| commit | ebbc0a3e806f2df19a74b3f7a1d3575476c3237b (patch) | |
| tree | 75cee427000925ef11ca42f78a1abe232b64342b | |
| parent | 35296a555d26a4721ffabe7994d59809c63ec93c (diff) | |
move GF.Devel.GF to GF
| -rw-r--r-- | src-3.0/GF.hs | 154 | ||||
| -rw-r--r-- | src-3.0/GF/Devel/GF.hs | 14 | ||||
| -rw-r--r-- | src-3.0/Makefile | 2 |
3 files changed, 9 insertions, 161 deletions
diff --git a/src-3.0/GF.hs b/src-3.0/GF.hs index 34585ef8f..70fddcd67 100644 --- a/src-3.0/GF.hs +++ b/src-3.0/GF.hs @@ -1,152 +1,14 @@ -{-# OPTIONS -cpp #-} ----------------------------------------------------------------------- --- | --- Module : Main --- Maintainer : Aarne Ranta --- Stability : (stability) --- Portability : (portability) --- --- > CVS $Date: 2005/06/30 11:36:49 $ --- > CVS $Author: aarne $ --- > CVS $Revision: 1.29 $ --- --- The Main module of GF program. ------------------------------------------------------------------------------ +module Main where -module Main (main) where +import GF.Devel.GFC +import GF.Devel.GFI -import GF.GFModes (gfInteract, gfBatch, batchCompile) -import GF.Data.Operations -import GF.Infra.UseIO -import GF.Infra.Option -import GF.API.IOGrammar -import GF.Compile.ShellState -import GF.Compile.Compile -import GF.Compile.MkConcrete -import GF.Compile.Wordlist -import GF.Shell -import GF.Shell.SubShell -import GF.Shell.ShellCommands -import GF.Shell.PShell -import GF.Shell.JGF -import GF.System.Signal -import GF.Text.UTF8 - -import GF.Today (today,version,libdir) -import System (getArgs,system,getEnv) -import System.FilePath -import Control.Monad (foldM,liftM) -import Data.List (nub) - -#ifdef mingw32_HOST_OS -import System.Win32.Console -import System.Win32.NLS -#endif - --- AR 19/4/2000 -- 21/3/2006 +import System (getArgs) main :: IO () main = do -#ifdef mingw32_HOST_OS - codepage <- getACP - setConsoleCP codepage - setConsoleOutputCP codepage -#endif - - xs <- getArgs - let - (os,fs) = getOptions "-" xs - opt j = oElem j os - st0 = optInitShellState os - ifNotSil c = if oElem beSilent os then return () else c - - doGF os fs = case 0 of - - _ | opt getHelp || any opt (map iOpt ["h", "-help", "-h"])-> do - putStrLnFlush $ encodeUTF8 helpMsg - - _ | opt forJava -> do - welcome <- welcomeMsgLib - putStrLnFlush $ encodeUTF8 welcome - st <- useIOE st0 $ - foldM (shellStateFromFiles os) st0 fs - sessionLineJ True st - return () - - _ | opt doMake -> do - mapM_ (batchCompile os) fs - return () - - _ | opt makeConcrete -> do - mkConcretes os fs - - _ | opt openEditor -> do - system $ "jgf" +++ unwords xs - return () - - _ | opt doBatch -> do - if opt beSilent then return () else putStrLnFlush "<gfbatch>" - st <- useIOE st0 $ - foldM (shellStateFromFiles os) st0 fs - gfBatch (initHState st) - if opt beSilent then return () else putStrLnFlush "</gfbatch>" - return () - _ -> do - welcome <- welcomeMsgLib - ifNotSil $ putStrLnFlush $ welcome - st <- useIOE st0 $ - foldM (shellStateFromFiles os) st0 fs - if null fs then return () else (ifNotSil putCPU) - blockInterrupt (gfInteract (initHState st)) - return () - -- preprocessing gfe - if opt fromExamples - then do - es <- liftM (nub . concat) $ mapM (getGFEFiles os) fs - mkConcretes os es - doGF (removeOption fromExamples os) fs - -- preprocessing gfwl - else if (length fs == 1 && takeExtensions (head fs) == ".gfwl") - then do - fs' <- mkWordlist (head fs) - doGF os fs' - else doGF os fs - -helpMsg = unlines [ - "Usage: gf <option>* <file>*", - "Options:", - " -batch structure session by XML tags (use > to send into a file)", - " -edit start the editor GUI (same as command 'jgf')", - " -ex first compile .gfe files as needed, then .gf files", - " -examples batch-compile .gfe files by parsing examples", - " -treebank use a treebank, instead of a grammar, as parser", - " -make batch-compile files", - " -noemit do not emit code when compiling", - " -v be verbose when compiling", - " -help show this message", - "Also all flags for import (i) are interpreted; see 'help import'.", - "An example combination of flags is", - " gf -batch -nocpu -s", - "which suppresses all messages except the output and fatal errors." - ] - -welcomeMsgLib = do - lib <- getLibraryPath - return $ welcomeMsg lib - -welcomeMsg lib = - "Welcome to " ++ authorMsg ++++ - "If \228 and \246 (umlaut letters) look strange, see 'h -coding'." ++ - "\nGF_LIB_PATH is set to " ++ lib ++ - "\n\nType 'h' for help, and 'h [Command] for more detailed help.\n" + xx <- getArgs + case xx of + "--batch":args -> mainGFC args + _ -> mainGFI xx -authorMsg = unlines [ - "Grammatical Framework, Version " ++ version, - "Compiled " ++ today, - "Copyright (c)", - "Krasimir Angelov, Bj\246rn Bringert, H\229kan Burden, Hans-Joachim Daniels,", - "Markus Forsberg, Thomas Hallgren, Harald Hammarstr\246m, Kristofer Johannisson,", - "Janna Khegai, Peter Ljungl\246f, Petri M\228enp\228\228, and", - "Aarne Ranta, 1998-2006, under GNU General Public License (GPL)", - "Bug reports to aarne@cs.chalmers.se" - ] diff --git a/src-3.0/GF/Devel/GF.hs b/src-3.0/GF/Devel/GF.hs deleted file mode 100644 index 70fddcd67..000000000 --- a/src-3.0/GF/Devel/GF.hs +++ /dev/null @@ -1,14 +0,0 @@ -module Main where - -import GF.Devel.GFC -import GF.Devel.GFI - -import System (getArgs) - -main :: IO () -main = do - xx <- getArgs - case xx of - "--batch":args -> mainGFC args - _ -> mainGFI xx - diff --git a/src-3.0/Makefile b/src-3.0/Makefile index 53c648908..66e709e18 100644 --- a/src-3.0/Makefile +++ b/src-3.0/Makefile @@ -207,7 +207,7 @@ gfc: gf3 gfi: gf3 gf3: - $(GHMAKE) $(GHCOPTFLAGS) $(GHCFLAGS) -o gf3 GF/Devel/GF.hs + $(GHMAKE) $(GHCOPTFLAGS) $(GHCFLAGS) -o gf3 GF.hs strip $(GF3_EXE) mv $(GF3_EXE) ../bin/ |
