X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=FlattenTypes.hs;h=eba0599e271ce1245c5bf5549814a866d9d9be54;hb=221d523e2cd3de079ea642a65f31950caf94152b;hp=f75b0d51e64ae9f476627e1d6477062660b1cd5b;hpb=c0fa1614f8bb0126868658fad79b01df447e113a;p=matthijs%2Fmaster-project%2Fc%CE%BBash.git diff --git a/FlattenTypes.hs b/FlattenTypes.hs index f75b0d5..eba0599 100644 --- a/FlattenTypes.hs +++ b/FlattenTypes.hs @@ -96,6 +96,12 @@ data SigDef = defDst :: SignalId } deriving (Show, Eq) +-- | Is the given SigDef a FApp? +is_FApp :: SigDef -> Bool +is_FApp d = case d of + (FApp _ _ _) -> True + _ -> False + -- | An expression on signals data SignalExpr = EqLit SignalId String -- ^ Is the given signal equal to the given (VHDL) literal @@ -193,8 +199,12 @@ addNameHint :: String -> SignalId -> FlattenState () addNameHint hint id = do info <- getSignalInfo id let hints = nameHints info - let hints' = (hint:hints) - setSignalInfo id (info {nameHints = hints'}) + if hint `elem` hints + then do + return () + else do + let hints' = (hint:hints) + setSignalInfo id (info {nameHints = hints'}) -- | Returns the SignalInfo for the given signal. Errors if the signal is not -- known in the session. @@ -208,3 +218,5 @@ setSignalInfo id' info' = do (defs, sigs, n) <- State.get let sigs' = map (\(id, info) -> (id, if id == id' then info' else info)) sigs State.put (defs, sigs', n) + +-- vim: set ts=8 sw=2 sts=2 expandtab: