diff options
| author | aarne <aarne@cs.chalmers.se> | 2008-06-25 16:43:48 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2008-06-25 16:43:48 +0000 |
| commit | b96b36f43de3e2f8b58d5f539daa6f6d47f25870 (patch) | |
| tree | 0992334be13cec6538a1dea22fbbf26ad6bdf224 /src/GF/Command/Interpreter.hs | |
| parent | fe367412e0aeb4ad5c02de68e6eca382e0f96984 (diff) | |
removed src for 2.9
Diffstat (limited to 'src/GF/Command/Interpreter.hs')
| -rw-r--r-- | src/GF/Command/Interpreter.hs | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/src/GF/Command/Interpreter.hs b/src/GF/Command/Interpreter.hs deleted file mode 100644 index 10730e7ef..000000000 --- a/src/GF/Command/Interpreter.hs +++ /dev/null @@ -1,74 +0,0 @@ -module GF.Command.Interpreter ( - CommandEnv (..), - interpretCommandLine - ) where - -import GF.Command.Commands -import GF.Command.AbsGFShell hiding (Tree) -import GF.Command.PPrTree -import GF.Command.ParGFShell -import GF.GFCC.API -import GF.GFCC.Macros -import GF.GFCC.DataGFCC - -import GF.Data.ErrM ---- - -import qualified Data.Map as Map - -data CommandEnv = CommandEnv { - multigrammar :: MultiGrammar, - commands :: Map.Map String CommandInfo - } - -interpretCommandLine :: CommandEnv -> String -> IO () -interpretCommandLine env line = case (pCommandLine (myLexer line)) of - Ok CEmpty -> return () - Ok (CLine pipes) -> mapM_ interPipe pipes - _ -> putStrLn "command not parsed" - where - interPipe (PComm cs) = do - (_,s) <- intercs ([],"") cs - putStrLn s - intercs treess [] = return treess - intercs (trees,_) (c:cs) = do - treess2 <- interc trees c - intercs treess2 cs - interc = interpret env - --- return the trees to be sent in pipe, and the output possibly printed -interpret :: CommandEnv -> [Tree] -> Command -> IO CommandOutput -interpret env trees0 comm = case lookCommand co comms of - Just info -> do - checkOpts info - tss@(_,s) <- exec info opts trees - optTrace s - return tss - _ -> do - putStrLn $ "command " ++ co ++ " not interpreted" - return ([],[]) - where - optTrace = if isOpt "tr" opts then putStrLn else const (return ()) - (co,opts,trees) = getCommand comm trees0 - comms = commands env - checkOpts info = - case - [o | OOpt (Ident o) <- opts, notElem o (options info)] ++ - [o | OFlag (Ident o) _ <- opts, notElem o (flags info)] - of - [] -> return () - [o] -> putStrLn $ "option not interpreted: " ++ o - os -> putStrLn $ "options not interpreted: " ++ unwords os - --- analyse command parse tree to a uniform datastructure, normalizing comm name -getCommand :: Command -> [Tree] -> (String,[Option],[Tree]) -getCommand co ts = case co of - Comm (Ident c) opts (ATree t) -> (getOp c,opts,[tree2exp t]) -- ignore piped - CNoarg (Ident c) opts -> (getOp c,opts,ts) -- use piped - where - -- abbreviation convention from gf - getOp s = case break (=='_') s of - (a:_,_:b:_) -> [a,b] -- axx_byy --> ab - _ -> case s of - [a,b] -> s -- ab --> ab - a:_ -> [a] -- axx --> a - |
