aboutsummaryrefslogtreecommitdiff
path: root/src/main.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.hs')
-rw-r--r--src/main.hs25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/main.hs b/src/main.hs
new file mode 100644
index 0000000..34a190a
--- /dev/null
+++ b/src/main.hs
@@ -0,0 +1,25 @@
+import System.IO
+import Statement
+import Parser.Statement
+import Parser.Core
+
+
+main = do
+ line <- prompt
+ loop line
+
+loop :: String -> IO ()
+loop "exit" = return ()
+loop line = do s <- parseIO line
+ putStrLn $ show s
+ main
+
+prompt :: IO String
+prompt = do putStr "> "
+ hFlush stdout
+ getLine
+
+parseIO :: String -> IO Statement
+parseIO input = case parseStrict statementP input of
+ Nothing -> fail "Couldn't parse input"
+ Just s -> return s