module Main where import Lib import qualified Data.Map as M import System.Environment main :: IO () main = do -- Get command line arguments. (proj:src:tail_args) <- getArgs -- Make bindings. binds <- mkTargetBindings proj src -- Configure entry. let entry = if length tail_args > 0 then tail_args !! 0 else "main" -- Do the loading. let load_result = loadStateEntry entry (Program binds) putStrLn $ "binds: " ++ show (length binds) case load_result of LoadError str -> do error str LoadOkay state -> do -- putStrLn "Bindings" -- mapM_ (putStrLn . pprBindingStr) binds putStrLn" **************** INIT ***************" putStrLn "Initial state:" putStrLn $ pprStateStr state let lds = execute1 100 state putStrLn "*************** BEGIN ***************" putStrLn $ pprLivesDeadsStr lds LoadGuess state cands -> do putStrLn $ pprStateStr state putStrLn "Other possible candidates:" putStrLn $ show cands