Adds "compiler" and CLI argument handling
This commit is contained in:
@ -12,10 +12,10 @@ import System.Console.Haskeline
|
||||
|
||||
import qualified Data.Map as Map
|
||||
|
||||
repl :: Map.Map String T -> IO ()
|
||||
repl :: Env -> IO ()
|
||||
repl env = runInputT defaultSettings (loop env)
|
||||
where
|
||||
loop :: Map.Map String T -> InputT IO ()
|
||||
loop :: Env -> InputT IO ()
|
||||
loop env = do
|
||||
minput <- getInputLine "tricu < "
|
||||
case minput of
|
||||
@ -28,7 +28,7 @@ repl env = runInputT defaultSettings (loop env)
|
||||
newEnv <- liftIO $ (processInput env input `catch` errorHandler env)
|
||||
loop newEnv
|
||||
|
||||
processInput :: Map.Map String T -> String -> IO (Map.Map String T)
|
||||
processInput :: Env -> String -> IO (Env)
|
||||
processInput env input = do
|
||||
let clearEnv = Map.delete "__result" env
|
||||
newEnv = evalSingle clearEnv (parseSingle input)
|
||||
@ -39,7 +39,7 @@ repl env = runInputT defaultSettings (loop env)
|
||||
Nothing -> return ()
|
||||
return newEnv
|
||||
|
||||
errorHandler :: Map.Map String T -> SomeException -> IO (Map.Map String T)
|
||||
errorHandler :: Env -> SomeException -> IO (Env)
|
||||
errorHandler env e = do
|
||||
putStrLn $ "Error: " ++ show e
|
||||
return env
|
||||
|
Reference in New Issue
Block a user