-- Simple command-line runner for HCR files: uses the extcore library. module Main where import System.IO import System.Environment import System.Exit import Control.Monad import Language.Core.ParsecParser import Language.Core.Interp main :: IO () main = do args <- getArgs when (null args) $ do p <- getProgName hPutStrLn stderr $ p ++ ": no input files. Usage: " ++ p ++ " file.hcr" exitWith (ExitFailure (-1)) cm <- parseCore (head args) case cm of Left e -> hPutStrLn stderr (show e) >> exitWith (ExitFailure (-2)) Right m -> evalProgram [m] >>= putStrLn . show