Add a list of used signals to FlatFunction.
authorMatthijs Kooijman <m.kooijman@student.utwente.nl>
Wed, 11 Feb 2009 19:07:46 +0000 (20:07 +0100)
committerMatthijs Kooijman <m.kooijman@student.utwente.nl>
Wed, 11 Feb 2009 19:07:46 +0000 (20:07 +0100)
Flatten.hs
FlattenTypes.hs
Pretty.hs

index 15f99808600bb37cf2880405d48a3639dc78e478..1297793356dfa8e17223fd034086202ace7584be 100644 (file)
@@ -53,7 +53,7 @@ flattenFunction ::
 
 flattenFunction _ (Rec _) = error "Recursive binders not supported"
 flattenFunction hsfunc bind@(NonRec var expr) =
-  FlatFunction args res apps conds
+  FlatFunction args res apps conds []
   where
     init_state        = ([], [], 0)
     (fres, end_state) = State.runState (flattenExpr [] expr) init_state
index 3389a5b6fdfed080cbbc84222b3e90187c7b46ef..49ca8c04533cbeab1616846c7ff1e5c1da2ac1bb 100644 (file)
@@ -74,13 +74,18 @@ data CondDef sigid = CondDef {
   condRes :: sigid
 } deriving (Show, Eq)
 
+-- | Information on a signal definition
+data Signal sigid = Signal {
+  id :: sigid
+} deriving (Eq, Show)
+
 -- | A flattened function
 data FlatFunction' sigid = FlatFunction {
   args   :: [SignalMap sigid],
   res    :: SignalMap sigid,
-  --sigs   :: [Signal],
   apps   :: [FApp sigid],
-  conds  :: [CondDef sigid]
+  conds  :: [CondDef sigid],
+  sigs   :: [Signal sigid]
 } deriving (Show, Eq)
 
 -- | A flat function that does not have its signals named
index 22862d59a0f256f16f87bfd0aeef87051b0c7f8c..74ffec79cc52f268ef6217b3a66d5e05f2c944b9 100644 (file)
--- a/Pretty.hs
+++ b/Pretty.hs
@@ -28,11 +28,12 @@ instance Pretty HsValueUse where
   pPrint (HighOrder _ _) = text "Higher Order"
 
 instance Pretty id => Pretty (FlatFunction' id) where
-  pPrint (FlatFunction args res apps conds) =
+  pPrint (FlatFunction args res apps conds sigs) =
     (text "Args: ") $$ nest 10 (pPrint args)
     $+$ (text "Result: ") $$ nest 10 (pPrint res)
     $+$ (text "Apps: ") $$ nest 10 (vcat (map pPrint apps))
     $+$ (text "Conds: ") $$ nest 10 (pPrint conds)
+    $+$ text "Signals: " $$ nest 10 (pPrint sigs)
 
 instance Pretty id => Pretty (FApp id) where
   pPrint (FApp func args res) =
@@ -41,6 +42,9 @@ instance Pretty id => Pretty (FApp id) where
 instance Pretty id => Pretty (CondDef id) where
   pPrint _ = text "TODO"
 
+instance Pretty id => Pretty (Signal id) where
+  pPrint (Signal id) = pPrint id
+
 instance Pretty VHDLSession where
   pPrint (VHDLSession mod nameCount funcs) =
     text "Module: " $$ nest 15 (text modname)