Test.hs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. module Main where
  2. import Ivory.Artifact
  3. import Control.Monad
  4. import Gidl.Types
  5. import Gidl.Interface
  6. import Gidl.Parse
  7. import Gidl.Schema
  8. import Gidl.Backend.Haskell.Types
  9. import Gidl.Backend.Cabal
  10. main :: IO ()
  11. main = test "tests/testtypes.sexpr"
  12. test :: FilePath -> IO ()
  13. test f = do
  14. c <- readFile f
  15. case parseDecls c of
  16. Left e -> print e
  17. Right (te@(TypeEnv te'), ie@(InterfaceEnv ie')) -> do
  18. print te
  19. putStrLn "---"
  20. as <- forM te' $ \(tn, t) -> do
  21. putStrLn (tn ++ ":")
  22. print (typeLeaves t)
  23. let a = typeModule (words "Sample IDL Haskell Types")
  24. (typeDescrToRepr tn te)
  25. printArtifact a
  26. return a
  27. let c = cabalFileArtifact $ defaultCabalFile "sample-idl-haskell"
  28. (map (filePathToPackage . artifactFileName) as)
  29. []
  30. printArtifact c
  31. {-
  32. putStrLn "---"
  33. print ie
  34. putStrLn "---"
  35. forM_ ie' $ \(iname, i) -> do
  36. putStrLn (iname ++ ":")
  37. print (interfaceTypes iname ie te)
  38. print (interfaceParents i)
  39. putStrLn "---"
  40. let ir = interfaceDescrToRepr iname ie te
  41. print (producerSchema ir)
  42. print (consumerSchema ir)
  43. putStrLn "---"
  44. -}