From 1f0b33729534d451d7dcc46d4614d1a12b31ea82 Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Wed, 11 Feb 2009 20:07:46 +0100 Subject: [PATCH] Add a list of used signals to FlatFunction. --- Flatten.hs | 2 +- FlattenTypes.hs | 9 +++++++-- Pretty.hs | 6 +++++- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Flatten.hs b/Flatten.hs index 15f9980..1297793 100644 --- a/Flatten.hs +++ b/Flatten.hs @@ -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 diff --git a/FlattenTypes.hs b/FlattenTypes.hs index 3389a5b..49ca8c0 100644 --- a/FlattenTypes.hs +++ b/FlattenTypes.hs @@ -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 diff --git a/Pretty.hs b/Pretty.hs index 22862d5..74ffec7 100644 --- 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) -- 2.30.2