diff options
Diffstat (limited to 'main.hs')
-rw-r--r-- | main.hs | 31 |
1 files changed, 31 insertions, 0 deletions
@@ -0,0 +1,31 @@ +module Main where + +import Control.Monad +import Data.Either +import Data.Maybe +import System.Console.Readline + +import Simplify +import Parser +import PrettyPrint + + +repl :: IO () +repl = do + mline <- readline "> " + case mline of + Nothing -> return () -- EOF + Just "" -> repl + Just line -> do + addHistory line + let eexpr = parseExpression line + either (putStrLn . ("Error: "++)) handleExpression eexpr + repl + where + handleExpression expr = do + print expr + let sim = simplify expr + print sim + +main :: IO () +main = repl |