summaryrefslogtreecommitdiff
path: root/src/Main.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Main.hs')
-rw-r--r--src/Main.hs11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/Main.hs b/src/Main.hs
index 15a97fa..07733dd 100644
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -2,6 +2,7 @@
module Main where
import Prelude hiding(lex)
+import System.Environment
import Text.Parsec.Error (ParseError)
@@ -12,10 +13,16 @@ import SPL.PrettyPrinter
main :: IO ()
main = do
- contents <- readFile "test/example1.spl"
+ args <- getArgs
+ contents <- getContents
case lex contents of
Nothing -> putStrLn "Failed to lex"
- Just tks -> case parse tks of
+ Just tks -> if "--parse" `elem` args
+ then doParse tks
+ else return ()
+ where
+ doParse :: [Token] -> IO ()
+ doParse tks = case parse tks of
Left e -> do
putStrLn $ "Failed to parse (" ++ show e ++ "). Tokens were:"
putStrLn $ show tks