diff options
| author | bringert <bringert@cs.chalmers.se> | 2005-11-25 16:36:19 +0000 |
|---|---|---|
| committer | bringert <bringert@cs.chalmers.se> | 2005-11-25 16:36:19 +0000 |
| commit | dbe8e61acc616b8f5ac07e8df89eb98a7997c29d (patch) | |
| tree | 6e379f18986fc60f5606e023def46abdf770dca5 /transfer/run_core.hs | |
| parent | fe2731e5f8e301b5a0169bf8b667bb6c13bae80b (diff) | |
Move transfer into the GF repo.
Diffstat (limited to 'transfer/run_core.hs')
| -rw-r--r-- | transfer/run_core.hs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/transfer/run_core.hs b/transfer/run_core.hs new file mode 100644 index 000000000..1d0457acd --- /dev/null +++ b/transfer/run_core.hs @@ -0,0 +1,26 @@ +import Transfer.InterpreterAPI + +import Data.List (partition, isPrefixOf) +import System.Environment (getArgs) + +interpretLoop :: Env -> IO () +interpretLoop env = do + line <- getLine + r <- evaluateString env line + putStrLn r + interpretLoop env + +runMain :: Env -> IO () +runMain env = do + r <- evaluateString env "main" + putStrLn r + +main :: IO () +main = do args <- getArgs + let (flags,files) = partition ("-" `isPrefixOf`) args + env <- case files of + [f] -> loadFile f + _ -> fail "Usage: run_core [-i] <file>" + if "-i" `elem` flags + then interpretLoop env + else runMain env |
