X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=Translator.hs;h=0431823f1dcc249c738aac1ddf0ab7a6eecdfc9a;hb=08a1265b63ba9af9a588b5c85e49883c5799dbe2;hp=ddd09fc340da9a401a24e1399c797de60c238234;hpb=f39903a05a540e2438805792ac39a89dac1c8e99;p=matthijs%2Fmaster-project%2Fc%CE%BBash.git diff --git a/Translator.hs b/Translator.hs index ddd09fc..0431823 100644 --- a/Translator.hs +++ b/Translator.hs @@ -1,5 +1,5 @@ module Translator where -import GHC hiding (loadModule) +import GHC hiding (loadModule, sigName) import CoreSyn import qualified CoreUtils import qualified Var @@ -42,7 +42,7 @@ import VHDLTypes import qualified VHDL main = do - makeVHDL "Alu.hs" "salu" + makeVHDL "Alu.hs" "register_bank" makeVHDL :: String -> String -> IO () makeVHDL filename name = do @@ -60,6 +60,7 @@ listBind filename name = do let binds = findBinds core [name] putStr "\n" putStr $ prettyShow binds + putStr $ showSDoc $ ppr binds putStr "\n\n" -- | Translate the binds with the given names from the given core module to @@ -220,9 +221,14 @@ nameFlatFunction hsfunc fdata = -- Name the signals in all other functions Just flatfunc -> let s = flat_sigs flatfunc in - let s' = map (\(id, (SignalInfo Nothing use ty)) -> (id, SignalInfo (Just $ "sig_" ++ (show id)) use ty)) s in + let s' = map nameSignal s in let flatfunc' = flatfunc { flat_sigs = s' } in setFlatFunc hsfunc flatfunc' + where + nameSignal :: (SignalId, SignalInfo) -> (SignalId, SignalInfo) + nameSignal (id, info) = + let name = "sig_" ++ (show id) in + (id, info {sigName = Just name}) -- | Splits a tuple type into a list of element types, or Nothing if the type -- is not a tuple type.