Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module Main where
- import System.Console.Haskeline
- import Text.Megaparsec.Error (errorBundlePretty)
- import HW3.Parser (parse)
- import HW3.Pretty (prettyValue)
- import HW3.Evaluator (eval)
- main :: IO ()
- main = runInputT defaultSettings loop
- where
- loop :: InputT IO ()
- loop = do
- minput <- getInputLine "hi> "
- case minput of
- Nothing -> return ()
- Just "exit" -> return ()
- Just "quit" -> return ()
- Just "q" -> return ()
- Just input -> do
- case parse input of
- Left err -> outputStrLn $ errorBundlePretty err
- Right expr -> do
- mval <- eval expr
- case mval of
- Left err -> outputStrLn $ show err
- Right val -> outputStrLn $ show $ prettyValue val
- loop
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement