X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=Pretty.hs;h=7896372f2d27dd01603664e4602dac15901dce70;hb=969b7ddd86b69d2fc61b101961affcca0364749c;hp=43e0e49bf7aa6c2dc3ce6822bf47306d57136175;hpb=d8c4021114afc1f860763b3a8dceff3f219d4798;p=matthijs%2Fmaster-project%2Fc%CE%BBash.git diff --git a/Pretty.hs b/Pretty.hs index 43e0e49..7896372 100644 --- a/Pretty.hs +++ b/Pretty.hs @@ -1,4 +1,4 @@ -module Pretty (prettyShow) where +module Pretty (prettyShow, pprString) where import qualified Data.Map as Map @@ -76,8 +76,8 @@ instance Pretty SigDef where instance Pretty SignalExpr where pPrint (EqLit id lit) = parens $ pPrint id <> text " = " <> text lit - pPrint (Literal lit) = - text lit + pPrint (Literal lit ty) = + text "(" <> text (show ty) <> text ") " <> text lit pPrint (Eq a b) = parens $ pPrint a <> text " = " <> pPrint b @@ -132,6 +132,9 @@ instance (OutputableBndr b, Show b) => Pretty (CoreSyn.Bind b) where pPrint (CoreSyn.Rec binds) = text "Rec: " $$ nest 10 (vcat $ map (prettyBind) binds) +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 @@ -141,3 +144,14 @@ prettyBind (b, expr) = where b' = show b expr' = show expr + +instance (Pretty k, Pretty v) => Pretty (Map.Map k v) where + pPrint = + vcat . map ppentry . Map.toList + 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