19 lines
484 B
Haskell
19 lines
484 B
Haskell
module Main where
|
|
|
|
import Control.Monad (void)
|
|
import Control.Monad.Except
|
|
import Eval (Env, emptyEnv)
|
|
import Parser (handleFile)
|
|
import Repl
|
|
import System.Environment
|
|
|
|
main :: IO ()
|
|
main = do
|
|
args <- getArgs
|
|
case args of
|
|
[] -> void repl
|
|
files -> handleFiles emptyEnv files
|
|
|
|
handleFiles :: Env -> [String] -> IO ()
|
|
handleFiles _ [] = putStrLn "success!"
|
|
handleFiles env (file : rest) = runExceptT (handleFile env file) >>= either putStrLn (`handleFiles` rest)
|