+-- Needed for the Show deriving for Core types
+{-# LANGUAGE StandaloneDeriving #-}
+
module Pretty (prettyShow) where
+
import qualified Data.Map as Map
import qualified Data.Foldable as Foldable
import qualified List
(text "Args: ") $$ nest 10 (pPrint args)
$+$ (text "Result: ") $$ nest 10 (pPrint res)
$+$ (text "Defs: ") $$ nest 10 (ppdefs defs)
- $+$ text "Signals: " $$ nest 10 (printList ppsig sigs)
+ $+$ text "Signals: " $$ nest 10 (ppsigs sigs)
where
ppsig (id, info) = pPrint id <> pPrint info
ppdefs defs = vcat (map pPrint sorted)
sigDefDst (FApp _ _ dst) = head $ Foldable.toList dst
sigDefDst (CondDef _ _ _ dst) = dst
sigDefDst (UncondDef _ dst) = dst
+ ppsigs sigs = vcat (map pPrint sorted)
+ where
+ sorted = List.sortBy (\a b -> compare (fst a) (fst b)) sigs
instance Pretty SigDef where
parens $ pPrint a <> text " = " <> pPrint b
instance Pretty SignalInfo where
- pPrint (SignalInfo name use ty) =
+ pPrint (SignalInfo name use ty hints) =
text ":" <> (pPrint use) <> (ppname name)
where
ppname Nothing = empty
pparch (Just _) = text "VHDL architecture present"
instance Pretty Entity where
- pPrint (Entity id args res decl) =
+ pPrint (Entity id args res decl pkg) =
text "Entity: " $$ nest 10 (pPrint id)
$+$ text "Args: " $$ nest 10 (pPrint args)
$+$ text "Result: " $$ nest 10 (pPrint res)
$+$ ppdecl decl
+ $+$ pppkg pkg
where
ppdecl Nothing = text "VHDL entity not present"
ppdecl (Just _) = text "VHDL entity present"
+ pppkg Nothing = text "VHDL package not present"
+ pppkg (Just _) = text "VHDL package present"
instance (OutputableBndr b, Show b) => Pretty (CoreSyn.Bind b) where
pPrint (CoreSyn.NonRec b expr) =