CC/Javalette.hs~
Jeena Paradies 063194f8be first commit
2011-04-19 11:37:05 +02:00

30 lines
865 B
Haskell

import System.Environment (getArgs)
import System.Exit (exitFailure)
import AbsJavalette
import LexJavalette
import ParJavalette
import ErrM
import TypeChecker
-- driver
check :: String -> IO ()
check s = case pProgram (myLexer s) of
Bad err -> do putStrLn "SYNTAX ERROR"
putStrLn err
exitFailure
Ok tree -> case typecheck tree of
Bad err -> do putStrLn "TYPE ERROR"
putStrLn err
exitFailure
Ok _ -> putStrLn "OK\n" ++ printTree tree
main :: IO ()
main = do args <- getArgs
case args of
[file] -> readFile file >>= check
_ -> do putStrLn "Usage: lab2 <SourceFile>"
exitFailure