X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=Translator.hs;h=d76ff15dc12f132483ac8244857809d01482e645;hb=1e1972884f324bbe6d046e2b52b9f9ea41014889;hp=4df791a18c847236c6b0bf29c08926ccc58e40d6;hpb=87d85be9d0d98b75570e1d931f6337fa51631615;p=matthijs%2Fmaster-project%2Fc%CE%BBash.git diff --git a/Translator.hs b/Translator.hs index 4df791a..d76ff15 100644 --- a/Translator.hs +++ b/Translator.hs @@ -43,11 +43,19 @@ main = liftIO $ printBinds (cm_binds core) let bind = findBind "half_adder" (cm_binds core) let NonRec var expr = bind - let sess = State.execState (do {(name, f) <- mkHWFunction bind; addFunc name f}) (VHDLSession 0 builtin_funcs) + -- Add the HWFunction from the bind to the session + let sess = State.execState (addF bind) (VHDLSession 0 builtin_funcs) liftIO $ putStr $ showSDoc $ ppr expr liftIO $ putStr "\n\n" liftIO $ putStr $ render $ ForSyDe.Backend.Ppr.ppr $ getArchitecture sess bind return expr + where + -- Turns the given bind into VHDL + addF bind = do + -- Get the function signature + (name, f) <- mkHWFunction bind + -- Add it to the session + addFunc name f printTarget (Target (TargetFile file (Just x)) obj Nothing) = print $ show file