From 4681aaa11c9906bb161649cb36abb5020c100e2c Mon Sep 17 00:00:00 2001 From: aarne Date: Wed, 11 Jun 2008 12:20:42 +0000 Subject: [PATCH] system command (!) in gf3 shell --- src-3.0/GFI.hs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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