Updated support for RangedWords, Requires new branch of ForSyDe
authorChristiaan Baaij <christiaan.baaij@gmail.com>
Mon, 22 Jun 2009 15:27:14 +0000 (17:27 +0200)
committerChristiaan Baaij <christiaan.baaij@gmail.com>
Mon, 22 Jun 2009 15:30:18 +0000 (17:30 +0200)
Generate.hs
VHDL.hs
cλash.cabal

index 23e4a2c7195c6b37cfb8980e174a795c436989cb..d3c05ab23e2447794c3df66d5f74015017f33349 100644 (file)
@@ -53,7 +53,7 @@ genUnconsVectorFuns elemTM vectorTM  =
     replaceVar =
          AST.VarDec resId 
                 (AST.SubtypeIn vectorTM
-                  (Just $ AST.IndexConstraint 
+                  (Just $ AST.ConstraintIndex $ AST.IndexConstraint 
                    [AST.ToRange (AST.PrimLit "0")
                             (AST.PrimName (AST.NAttribute $ 
                               AST.AttribName (AST.NSimple vecPar) lengthId Nothing) AST.:-:
@@ -88,7 +88,7 @@ genUnconsVectorFuns elemTM vectorTM  =
     initVar = 
          AST.VarDec resId 
                 (AST.SubtypeIn vectorTM
-                  (Just $ AST.IndexConstraint 
+                  (Just $ AST.ConstraintIndex $ AST.IndexConstraint 
                    [AST.ToRange (AST.PrimLit "0")
                             (AST.PrimName (AST.NAttribute $ 
                               AST.AttribName (AST.NSimple vecPar) lengthId Nothing) AST.:-:
@@ -106,7 +106,7 @@ genUnconsVectorFuns elemTM vectorTM  =
     tailVar = 
          AST.VarDec resId 
                 (AST.SubtypeIn vectorTM
-                  (Just $ AST.IndexConstraint 
+                  (Just $ AST.ConstraintIndex $ AST.IndexConstraint 
                    [AST.ToRange (AST.PrimLit "0")
                             (AST.PrimName (AST.NAttribute $ 
                               AST.AttribName (AST.NSimple vecPar) lengthId Nothing) AST.:-:
@@ -125,7 +125,7 @@ genUnconsVectorFuns elemTM vectorTM  =
     takeVar = 
          AST.VarDec resId 
                 (AST.SubtypeIn vectorTM
-                  (Just $ AST.IndexConstraint 
+                  (Just $ AST.ConstraintIndex $ AST.IndexConstraint 
                    [AST.ToRange (AST.PrimLit "0")
                                ((AST.PrimName (AST.NSimple nPar)) AST.:-:
                                 (AST.PrimLit "1"))   ]))
@@ -141,7 +141,7 @@ genUnconsVectorFuns elemTM vectorTM  =
     dropVar = 
          AST.VarDec resId 
                 (AST.SubtypeIn vectorTM
-                  (Just $ AST.IndexConstraint 
+                  (Just $ AST.ConstraintIndex $ AST.IndexConstraint 
                    [AST.ToRange (AST.PrimLit "0")
                             (AST.PrimName (AST.NAttribute $ 
                               AST.AttribName (AST.NSimple vecPar) lengthId Nothing) AST.:-:
diff --git a/VHDL.hs b/VHDL.hs
index ecf6406f95e3f3f621b835d74497eb4feb5b2110..92df267811bb480859f5a00712fa670e57e04ea4 100644 (file)
--- a/VHDL.hs
+++ b/VHDL.hs
@@ -624,7 +624,7 @@ mk_vector_ty len el_ty ty = do
   elem_types_map <- getA vsElemTypes
   el_ty_tm <- vhdl_ty el_ty
   let ty_id = mkVHDLExtId $ "vector-"++ (AST.fromVHDLId el_ty_tm) ++ "-0_to_" ++ (show len)
-  let range = AST.IndexConstraint [AST.ToRange (AST.PrimLit "0") (AST.PrimLit $ show (len - 1))]
+  let range = AST.ConstraintIndex $ AST.IndexConstraint [AST.ToRange (AST.PrimLit "0") (AST.PrimLit $ show (len - 1))]
   let existing_elem_ty = (fmap fst) $ Map.lookup (OrdType el_ty) elem_types_map
   case existing_elem_ty of
     Just t -> do
@@ -645,7 +645,8 @@ mk_natural_ty ::
   -> VHDLState (AST.TypeMark, AST.SubtypeIn) -- The typemark created.
 mk_natural_ty min_bound max_bound ty = do
   let ty_id = mkVHDLExtId $ "nat_" ++ (show min_bound) ++ "_to_" ++ (show max_bound)
-  let ty_def = AST.SubtypeIn naturalTM (Nothing)
+  let range = AST.ConstraintRange $ AST.SubTypeRange (AST.PrimLit $ (show min_bound)) (AST.PrimLit $ (show max_bound))
+  let ty_def = AST.SubtypeIn naturalTM (Just range)
   return (ty_id, ty_def)
 
 
index 798b2813ebd592ee05a7224851d803d9c7c29b85..7d2d670d5a2e23183fda1b42b13cdbf0b1892d8d 100644 (file)
@@ -12,7 +12,7 @@ author:              Christiaan Baaij & Matthijs Kooijman
 stability:           alpha
 maintainer:          christiaan.baaij@gmail.com & matthijs@stdin.nl
 build-depends:       base > 4, syb, ghc, ghc-paths, transformers, haskell98,
-                     ForSyDe, regex-posix ,data-accessor-template, pretty,
+                     ForSyDe > 3.0, regex-posix ,data-accessor-template, pretty,
                      data-accessor, containers, prettyclass, tfp > 0.3, 
                      tfvec, QuickCheck, template-haskell