diff options
-rw-r--r-- | .gitmodules | 3 | ||||
-rw-r--r-- | src/Main.hs | 11 | ||||
m--------- | test/spl-test-programs | 0 |
3 files changed, 12 insertions, 2 deletions
diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..fe1a037 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "test/spl-test-programs"] + path = test/spl-test-programs + url = https://github.com/mklinik/spl-test-programs 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 diff --git a/test/spl-test-programs b/test/spl-test-programs new file mode 160000 +Subproject b504a9c9571070047fd74bd2c92943c65f6e260 |