X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=FlattenTypes.hs;h=d0076636bdcd07e266215b74e92e875e4f547e17;hb=ee2454dbeb8d41d615726593acd8600c4a3253ae;hp=092baff4911fdcb6789399ec613c09293fe30f02;hpb=9b7d00ad53acfc821840051ef693d87470b4462b;p=matthijs%2Fmaster-project%2Fc%CE%BBash.git diff --git a/FlattenTypes.hs b/FlattenTypes.hs index 092baff..d007663 100644 --- a/FlattenTypes.hs +++ b/FlattenTypes.hs @@ -138,7 +138,8 @@ isInternalSigUse _ = False data SignalInfo = SignalInfo { sigName :: Maybe String, sigUse :: SigUse, - sigTy :: Type.Type + sigTy :: Type.Type, + nameHints :: [String] } -- | A flattened function @@ -183,10 +184,18 @@ genSignalId :: SigUse -> Type.Type -> FlattenState SignalId genSignalId use ty = do (defs, sigs, n) <- State.get -- Generate a new numbered but unnamed signal - let s = (n, SignalInfo Nothing use ty) + let s = (n, SignalInfo Nothing use ty []) State.put (defs, s:sigs, n+1) return n +-- | Add a name hint to the given signal +addNameHint :: SignalId -> String -> FlattenState () +addNameHint id hint = do + info <- getSignalInfo id + let hints = nameHints info + 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. getSignalInfo :: SignalId -> FlattenState SignalInfo