diff options
| author | aarne <aarne@cs.chalmers.se> | 2007-11-06 14:44:17 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2007-11-06 14:44:17 +0000 |
| commit | 2b1d5a4d513970308f47c735212cbc253ec40961 (patch) | |
| tree | 2395299df4ba44d7cfb060b9294ea38f1dce63f4 /src/GF/Devel | |
| parent | 693621ffbe9146f24ba75e073b6ce2e716c56a5e (diff) | |
Devel/GF3: experimentally putting together all functionalities for the first time
Diffstat (limited to 'src/GF/Devel')
| -rw-r--r-- | src/GF/Devel/GF3.hs | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/GF/Devel/GF3.hs b/src/GF/Devel/GF3.hs new file mode 100644 index 000000000..742feb09a --- /dev/null +++ b/src/GF/Devel/GF3.hs @@ -0,0 +1,44 @@ +module Main where + +import GF.Command.Interpreter +import GF.Command.Importing +import GF.Command.Commands +import GF.GFCC.API + +import GF.Infra.Option ---- Haskell's option lib + +import System (getArgs) + +main :: IO () +main = do + putStrLn welcome + xx <- getArgs + env <- importInEnv emptyMultiGrammar xx + loop env + return () + +loop :: CommandEnv -> IO CommandEnv +loop env = do + s <- getLine + case words s of + "q":_ -> return env + "i":args -> do + env1 <- importInEnv (multigrammar env) args + loop env1 + _ -> do + interpretCommandLine env s + loop env + +importInEnv mgr0 xx = do + let (opts,files) = getOptions "-" xx + mgr1 <- case files of + [] -> return mgr0 + _ -> importGrammar mgr0 opts files + let env = CommandEnv mgr1 (allCommands mgr1) + putStrLn $ unwords $ "\nLanguages:" : languages mgr1 + return env + +welcome = unlines [ + "This is GF version 3.0 alpha.", + "Some things may work." + ] |
