diff options
Diffstat (limited to 'src/Main.hs')
-rw-r--r-- | src/Main.hs | 11 |
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 |