Moved to new GHC API (6.11). Also use vhdl package for the VHDL AST
[matthijs/master-project/cλash.git] / Pretty.hs
index b2ac91ddb6e3334b4b075df407c96936d8855195..d88846a1f2600e30cc8f9fa6efdf6cb31446f382 100644 (file)
--- a/Pretty.hs
+++ b/Pretty.hs
@@ -1,4 +1,4 @@
-module Pretty (prettyShow) where
+module Pretty (prettyShow, pprString, pprStringDebug) where
 
 
 import qualified Data.Map as Map
@@ -9,11 +9,11 @@ import qualified CoreSyn
 import qualified Module
 import qualified HscTypes
 import Text.PrettyPrint.HughesPJClass
-import Outputable ( showSDoc, ppr, Outputable, OutputableBndr)
+import Outputable ( showSDoc, showSDocDebug, ppr, Outputable, OutputableBndr)
 
-import qualified ForSyDe.Backend.Ppr
-import qualified ForSyDe.Backend.VHDL.Ppr
-import qualified ForSyDe.Backend.VHDL.AST as AST
+import qualified Language.VHDL.Ppr as Ppr
+import qualified Language.VHDL.AST as AST
+import qualified Language.VHDL.AST.Ppr
 
 import HsValueMap
 import FlattenTypes
@@ -136,7 +136,10 @@ instance (OutputableBndr b, Show b) => Pretty (CoreSyn.Expr b) where
   pPrint = text . show
 
 instance Pretty AST.VHDLId where
-  pPrint id = ForSyDe.Backend.Ppr.ppr id
+  pPrint id = Ppr.ppr id
+  
+instance Pretty AST.VHDLName where
+  pPrint name = Ppr.ppr name
 
 prettyBind :: (Show b, Show e) => (b, e) -> Doc
 prettyBind (b, expr) =
@@ -151,3 +154,10 @@ instance (Pretty k, Pretty v) => Pretty (Map.Map k v) where
     where
       ppentry (k, v) =
         pPrint k <> text " : " $$ nest 15 (pPrint v)
+
+-- Convenience method for turning an Outputable into a string
+pprString :: (Outputable x) => x -> String
+pprString = showSDoc . ppr
+
+pprStringDebug :: (Outputable x) => x -> String
+pprStringDebug = showSDocDebug . ppr