Use less general names as labels some fields.
authorMatthijs Kooijman <m.kooijman@student.utwente.nl>
Fri, 13 Feb 2009 13:49:30 +0000 (14:49 +0100)
committerMatthijs Kooijman <m.kooijman@student.utwente.nl>
Fri, 13 Feb 2009 13:49:44 +0000 (14:49 +0100)
FlattenTypes.hs
Translator.hs
TranslatorTypes.hs
VHDL.hs

index 4e2640a8ee7d18520ea0f72333ce0b63bb248385..e77a8aaf3c5e01841f91fa169a5ab205585f322b 100644 (file)
@@ -83,11 +83,11 @@ data SignalInfo = SignalInfo {
 
 -- | A flattened function
 data FlatFunction' sigid = FlatFunction {
-  args   :: [SignalMap sigid],
-  res    :: SignalMap sigid,
-  apps   :: [FApp sigid],
-  conds  :: [CondDef sigid],
-  sigs   :: [(sigid, SignalInfo)]
+  flat_args   :: [SignalMap sigid],
+  flat_res    :: SignalMap sigid,
+  flat_apps   :: [FApp sigid],
+  flat_conds  :: [CondDef sigid],
+  flat_sigs   :: [(sigid, SignalInfo)]
 }
 
 -- | A flat function that does not have its signals named
index 7e66b181a2f72aef2d22c33e470d645c486fa1d8..88f321eaf10e127f3cc20344f8363df96f7456b1 100644 (file)
@@ -116,7 +116,7 @@ flattenBind hsfunc bind@(NonRec var expr) = do
   let flatfunc = flattenFunction hsfunc bind
   addFunc hsfunc
   setFlatFunc hsfunc flatfunc
-  let used_hsfuncs = map appFunc (apps flatfunc)
+  let used_hsfuncs = map appFunc (flat_apps flatfunc)
   State.mapM resolvFunc used_hsfuncs
   return ()
 
@@ -186,9 +186,9 @@ nameFlatFunction hsfunc fdata =
     Nothing -> fdata
     -- Name the signals in all other functions
     Just flatfunc ->
-      let s = sigs flatfunc in
+      let s = flat_sigs flatfunc in
       let s' = map (\(id, (SignalInfo Nothing ty)) -> (id, SignalInfo (Just $ "sig_" ++ (show id)) ty)) s in
-      let flatfunc' = flatfunc { sigs = s' } in
+      let flatfunc' = flatfunc { flat_sigs = s' } in
       fdata { flatFunc = Just flatfunc' }
 
 -- | Splits a tuple type into a list of element types, or Nothing if the type
index da1407a78044bdcf8153deb3a06ddb6ac6174e44..604ab2050ff377b6cb25205bc63d6b1cdb22d7eb 100644 (file)
@@ -22,9 +22,9 @@ type FuncMap  = Map.Map HsFunction FuncData
 
 -- | Some stuff we collect about a function along the way.
 data FuncData = FuncData {
-  flatFunc :: Maybe FlatFunction,
-  entity   :: Maybe Entity,
-  funcArch :: Maybe AST.ArchBody
+  flatFunc     :: Maybe FlatFunction,
+  funcEntity   :: Maybe Entity,
+  funcArch     :: Maybe AST.ArchBody
 }
 
 data VHDLSession = VHDLSession {
diff --git a/VHDL.hs b/VHDL.hs
index 9cea6fe74c333910ef8fd1b9919d61e8e5f9694f..8c2fe0315b525a96fa1585b14b11b0b9b9051ef1 100644 (file)
--- a/VHDL.hs
+++ b/VHDL.hs
@@ -33,15 +33,15 @@ createEntity hsfunc fdata =
     Just flatfunc ->
       
       let 
-        s       = sigs flatfunc
-        a       = args flatfunc
-        r       = res  flatfunc
-        args'   = map (fmap (mkMap s)) a
-        res'    = fmap (mkMap s) r
+        sigs    = flat_sigs flatfunc
+        args    = flat_args flatfunc
+        res     = flat_res  flatfunc
+        args'   = map (fmap (mkMap sigs)) args
+        res'    = fmap (mkMap sigs) res
         ent_decl' = createEntityAST hsfunc args' res'
         entity' = Entity args' res' (Just ent_decl')
       in
-        fdata { entity = Just entity' }
+        fdata { funcEntity = Just entity' }
   where
     mkMap :: Eq id => [(id, SignalInfo)] -> id -> (AST.VHDLId, AST.TypeMark)
     mkMap sigmap id =
@@ -99,13 +99,15 @@ createArchitecture hsfunc fdata =
     -- Create an architecture for all other functions
     Just flatfunc ->
       let 
-        s        = sigs flatfunc
-        a        = args flatfunc
-        r        = res  flatfunc
+        sigs      = flat_sigs flatfunc
+        args      = flat_args flatfunc
+        res       = flat_res  flatfunc
         entity_id = Maybe.fromMaybe
                       (error $ "Building architecture without an entity? This should not happen!")
                       (getEntityId fdata)
-        sig_decs = [mkSigDec info | (id, info) <- s, (all (id `Foldable.notElem`) (r:a)) ]
+        -- Create signal declarations for all signals that are not in args and
+        -- res
+        sig_decs = [mkSigDec info | (id, info) <- sigs, (all (id `Foldable.notElem`) (res:args)) ]
         arch     = AST.ArchBody (mkVHDLId "structural") (AST.NSimple entity_id) (map AST.BDISD sig_decs) []
       in
         fdata { funcArch = Just arch }
@@ -122,7 +124,7 @@ mkSigDec info =
 -- | Extracts the generated entity id from the given funcdata
 getEntityId :: FuncData -> Maybe AST.VHDLId
 getEntityId fdata =
-  case entity fdata of
+  case funcEntity fdata of
     Nothing -> Nothing
     Just e  -> case ent_decl e of
       Nothing -> Nothing
@@ -133,7 +135,7 @@ getLibraryUnits ::
   -> [AST.LibraryUnit]        -- | The library units it generates
 
 getLibraryUnits (hsfunc, fdata) =
-  case entity fdata of 
+  case funcEntity fdata of 
     Nothing -> []
     Just ent -> case ent_decl ent of
       Nothing -> []