-- 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
