From 0775dea2bc79cb1b5ee56f74f8076fc30a394127 Mon Sep 17 00:00:00 2001 From: Akshay Date: Thu, 8 Oct 2020 10:53:41 +0530 Subject: init --- bin/Main.hs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 bin/Main.hs (limited to 'bin') diff --git a/bin/Main.hs b/bin/Main.hs new file mode 100644 index 0000000..2942566 --- /dev/null +++ b/bin/Main.hs @@ -0,0 +1,26 @@ +module Main where + +import Evaluator (eval) +import Parser (Expr (..), parseLispValue) +import System.Console.Readline +import Text.ParserCombinators.Parsec + +readExpr :: String -> Expr +readExpr inp = + case parse parseLispValue "(unknown)" inp of + Left err -> StringLiteral $ show err + Right val -> val + +repl :: IO () +repl = do + inp <- readline "(lisk)> " + case inp of + Nothing -> return () + Just ",q" -> return () + Just line -> do + addHistory line + print . eval . readExpr $ line + repl + +main :: IO () +main = repl -- cgit v1.2.3