Test.hs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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.Cabal
  9. import Gidl.Backend.Haskell.Types
  10. import Gidl.Backend.Haskell
  11. main :: IO ()
  12. main = runHaskellBackend "tests/testtypes.sexpr"
  13. "gidl-haskell-backend-test"
  14. (words "Gidl Haskell Test")
  15. "tests/gidl-haskell-backend-test"
  16. --test "tests/testtypes.sexpr"
  17. test :: FilePath -> IO ()
  18. test f = do
  19. c <- readFile f
  20. case parseDecls c of
  21. Left e -> print e
  22. Right (te@(TypeEnv te'), ie@(InterfaceEnv ie')) -> do
  23. print te
  24. putStrLn "---"
  25. as <- forM te' $ \(tn, t) -> do
  26. putStrLn (tn ++ ":")
  27. print (typeLeaves t)
  28. let a = typeModule (words "Sample IDL Haskell Types")
  29. (typeDescrToRepr tn te)
  30. printArtifact a
  31. return a
  32. let c = cabalFileArtifact $ defaultCabalFile "sample-idl-haskell"
  33. (map (filePathToPackage . artifactFileName) as)
  34. []
  35. printArtifact c
  36. {-
  37. putStrLn "---"
  38. print ie
  39. putStrLn "---"
  40. forM_ ie' $ \(iname, i) -> do
  41. putStrLn (iname ++ ":")
  42. print (interfaceTypes iname ie te)
  43. print (interfaceParents i)
  44. putStrLn "---"
  45. let ir = interfaceDescrToRepr iname ie te
  46. print (producerSchema ir)
  47. print (consumerSchema ir)
  48. putStrLn "---"
  49. -}