From: Matthijs Kooijman Date: Wed, 11 Feb 2009 19:07:46 +0000 (+0100) Subject: Add a list of used signals to FlatFunction. X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fmaster-project%2Fc%CE%BBash.git;a=commitdiff_plain;h=1f0b33729534d451d7dcc46d4614d1a12b31ea82 Add a list of used signals to FlatFunction. --- 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)