We'll use another way to represent names in FlatFunctions.
instance Pretty id => Pretty (Signal id) where
pPrint (Signal id) = pPrint id
-instance Pretty NamedSignal where
- pPrint (NamedSignal name) = pPrint name
-
instance Pretty VHDLSession where
pPrint (VHDLSession mod nameCount funcs) =
text "Module: " $$ nest 15 (text modname)
where
ppfunc (hsfunc, (FuncData flatfunc)) =
pPrint hsfunc $+$ (text "Flattened: " $$ nest 15 (ppffunc flatfunc))
- ppffunc (Just (Left f)) = pPrint f
- ppffunc (Just (Right f)) = pPrint f
- ppffunc Nothing = text "Nothing"
+ ppffunc (Just f) = pPrint f
+ ppffunc Nothing = text "Nothing"
modname = showSDoc $ Module.pprModule (HscTypes.cm_module mod)
instance (OutputableBndr b) => Pretty (CoreSyn.Bind b) where
-- Flatten the function
let flatfunc = flattenFunction hsfunc bind
addFunc hsfunc
- setFlatFunc hsfunc (Left flatfunc)
+ setFlatFunc hsfunc flatfunc
let used_hsfuncs = map appFunc (apps flatfunc)
State.mapM resolvFunc used_hsfuncs
return ()
-- function along the way.
type FuncMap = Map.Map HsFunction FuncData
--- | A signal that has been assigned a (unique) name
-data NamedSignal = NamedSignal String
-
--- | A function in which all signals have been assigned unique names
-type NamedFlatFunction = FlatFunction' NamedSignal
-
-- | Some stuff we collect about a function along the way.
data FuncData = FuncData {
- flatFunc :: Maybe (Either FlatFunction NamedFlatFunction)
+ flatFunc :: Maybe FlatFunction
}
data VHDLSession = VHDLSession {
return $ Map.lookup hsfunc fs
-- | Sets the FlatFunction for the given HsFunction in the given setting.
-setFlatFunc :: HsFunction -> (Either FlatFunction NamedFlatFunction) -> VHDLState ()
+setFlatFunc :: HsFunction -> FlatFunction -> VHDLState ()
setFlatFunc hsfunc flatfunc = do
fs <- State.gets funcs -- Get the funcs element from the session
let fs'= Map.adjust (\d -> d { flatFunc = Just flatfunc }) hsfunc fs
-- Shortcut
mkVHDLId :: String -> AST.VHDLId
mkVHDLId = AST.unsafeVHDLBasicId
-