module Main where import Sham import Hardware.Chalk import qualified Hardware.Chalk.Combinators (zip) import Data.GraphViz import Data.Typeable import System.Directory import Test.QuickCheck import Data.Stream (Stream (..), unfold, (<:>)) import qualified Data.Stream (zip,take) main = do putStrLn "Generating graphs..." dir <- getCurrentDirectory let sg = simpleGraph test let g = (graph dir test) {graphID = Just (Str "\"The Sham microprocessor\"")} writeFile "sout.dot" (show sg) writeFile "out.dot" (show g) prop cmds dst srcA srcB n = all (\_ -> True) $ Data.Stream.take (abs n) (simulate (Hardware.Chalk.Combinators.zip $ sham cmds dst srcA srcB))