diff options
author | tomsmeding <tom.smeding@gmail.com> | 2016-06-16 23:24:47 +0200 |
---|---|---|
committer | tomsmeding <tom.smeding@gmail.com> | 2016-06-16 23:24:47 +0200 |
commit | dd3db844dd49451f28d044cd1d2fd71430d73686 (patch) | |
tree | cd76d7ad6efbf2d2e4760695d39cb48bb479a936 /main.hs |
Initial
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 |