diff options
| author | aarne <aarne@cs.chalmers.se> | 2008-06-11 12:20:42 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2008-06-11 12:20:42 +0000 |
| commit | a61954fd117199ff2110fa584119baafeb6decc3 (patch) | |
| tree | 2078a6faa254be43ccc4b598fbf5633163743450 /src-3.0 | |
| parent | ad16eb2d788f6fe20e098f115ff42e0db8eb8974 (diff) | |
system command (!) in gf3 shell
Diffstat (limited to 'src-3.0')
| -rw-r--r-- | src-3.0/GFI.hs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src-3.0/GFI.hs b/src-3.0/GFI.hs index 37abb3cd6..a1451abad 100644 --- a/src-3.0/GFI.hs +++ b/src-3.0/GFI.hs @@ -19,6 +19,7 @@ import Data.Char import Data.List(isPrefixOf) import qualified Data.Map as Map import qualified Text.ParserCombinators.ReadP as RP +import System import System.CPUTime import Control.Exception @@ -45,6 +46,9 @@ loop opts gfenv0 = do loop opts $ gfenv' {cputime = cpu'} case words s of -- special commands, requiring source grammar in env + "!":ws -> do + system $ unwords ws + loopNewCPU gfenv "cc":ws -> do -- FIXME: add options parsing for cc arguments let (style,term) = (TermPrintDefault, ws) @@ -60,7 +64,9 @@ loop opts gfenv0 = do loopNewCPU gfenv' -- other special commands, working on GFEnv - "e":_ -> loopNewCPU $ gfenv {commandenv=env{multigrammar=emptyPGF}} + "e":_ -> loopNewCPU $ gfenv { + commandenv=env{multigrammar=emptyPGF}, sourcegrammar = emptyGrammar + } "ph":_ -> mapM_ putStrLn (reverse (history gfenv0)) >> loopNewCPU gfenv "q":_ -> putStrLn "See you." >> return gfenv |
