Test.hs 639 B

12345678910111213141516171819202122232425262728
  1. module Main where
  2. import Control.Monad
  3. import Gidl.Types
  4. import Gidl.Interface
  5. import Gidl.Parse
  6. main :: IO ()
  7. main = test "tests/testtypes.sexpr"
  8. test :: FilePath -> IO ()
  9. test f = do
  10. c <- readFile f
  11. case parseDecls c of
  12. Left e -> print e
  13. Right (te@(TypeEnv te'), ie@(InterfaceEnv ie')) -> do
  14. print te
  15. putStrLn "---"
  16. forM_ te' $ \(tn, t) -> do
  17. putStrLn (tn ++ ":")
  18. print (typeLeaves t)
  19. putStrLn "---"
  20. print ie
  21. putStrLn "---"
  22. forM_ ie' $ \(iname, i) -> do
  23. putStrLn (iname ++ ":")
  24. print (interfaceTypes iname ie te)
  25. print (interfaceParents i)