diff options
| author | aarne <aarne@cs.chalmers.se> | 2008-05-24 16:13:27 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2008-05-24 16:13:27 +0000 |
| commit | 68903bb25155978b6da22b1f6bd7069621c7dc30 (patch) | |
| tree | ff14e9dc5a13add6ae03c82f993ecdc81c6ed79c /src-3.0/GFI.hs | |
| parent | 0db611a9abfb31c76933a455da946cf2194ded7b (diff) | |
started source grammar API ; used it for a first implem. of cc command
Diffstat (limited to 'src-3.0/GFI.hs')
| -rw-r--r-- | src-3.0/GFI.hs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src-3.0/GFI.hs b/src-3.0/GFI.hs index ceb7fa6f9..ae2c2440d 100644 --- a/src-3.0/GFI.hs +++ b/src-3.0/GFI.hs @@ -5,7 +5,7 @@ import GF.Command.Importing import GF.Command.Commands import GF.GFCC.API -import GF.Grammar.Grammar (SourceGrammar,emptySourceGrammar) -- for cc command +import GF.Grammar.API -- for cc command import GF.Infra.UseIO import GF.Infra.Option ---- Haskell's option lib @@ -21,22 +21,28 @@ mainGFI :: [String] -> IO () mainGFI xx = do putStrLn welcome env <- importInEnv emptyMultiGrammar xx - loop (GFEnv emptySourceGrammar env [] 0) + loop (GFEnv emptyGrammar env [] 0) return () loop :: GFEnv -> IO GFEnv loop gfenv0 = do let env = commandenv gfenv0 + let sgr = sourcegrammar gfenv0 s <- fetchCommand (prompt env) let gfenv = gfenv0 {history = s : history gfenv0} case words s of -- special commands, requiring source grammar in env + "cc":ws -> do + let t = pTerm (unwords ws) >>= checkTerm sgr >>= computeTerm sgr + err putStrLn (putStrLn . prTerm) t ---- make pipable + loopNewCPU gfenv + "i":args -> do let (opts,files) = getOptions "-" args case opts of _ | oElem (iOpt "retain") opts -> do - src <- importSource (sourcegrammar gfenv) opts files + src <- importSource sgr opts files loopNewCPU $ gfenv {sourcegrammar = src} -- other special commands, working on GFEnv @@ -89,7 +95,7 @@ prompt env = absname ++ "> " where n -> n data GFEnv = GFEnv { - sourcegrammar :: SourceGrammar, -- gfo grammar -retain + sourcegrammar :: Grammar, -- gfo grammar -retain commandenv :: CommandEnv, history :: [String], cputime :: Integer |
