
import System

import Eval (eval)
import Parser (readExpr)
import Value (showVal)

main = do
    args <- getArgs
    expr <- case args of
        ("-":_) -> getContents
        (x:_) -> readFile x
        _ -> getContents
    case readExpr expr of
        Left err -> putStrLn err
        Right val -> case eval val [] of
            Left err -> putStrLn err
            Right (val', e) -> putStrLn $ showVal $ val'

