summaryrefslogtreecommitdiff
path: root/src-3.0/GFI.hs
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2008-05-24 16:13:27 +0000
committeraarne <aarne@cs.chalmers.se>2008-05-24 16:13:27 +0000
commit68903bb25155978b6da22b1f6bd7069621c7dc30 (patch)
treeff14e9dc5a13add6ae03c82f993ecdc81c6ed79c /src-3.0/GFI.hs
parent0db611a9abfb31c76933a455da946cf2194ded7b (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.hs14
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