Added builtin foldl function
[matthijs/master-project/cλash.git] / GlobalNameTable.hs
index c860dcb437e5732c50968168d770bc10aca075ef..9a6122778e91aee8a11a5d6180769c71f1208366 100644 (file)
@@ -12,11 +12,28 @@ import VHDLTypes
 import Constants
 import Generate
 
-mkGlobalNameTable :: [(String, (Int, [AST.Expr] -> AST.Expr ) )] -> NameTable
+mkGlobalNameTable :: [(String, (Int, Builder) )] -> NameTable
 mkGlobalNameTable = Map.fromList
 
 globalNameTable :: NameTable
 globalNameTable = mkGlobalNameTable
-  [ ("!"    , (2, genExprFCall2L exId                           ) )
-  , ("head"           , (1, genExprFCall1L headId                         ) )
-  ]
\ No newline at end of file
+  [ (exId             , (2, Left $ genExprFCall exId                      ) )
+  , (replaceId        , (3, Left $ genExprFCall replaceId                 ) )
+  , (headId           , (1, Left $ genExprFCall headId                    ) )
+  , (lastId           , (1, Left $ genExprFCall lastId                    ) )
+  , (tailId           , (1, Left $ genExprFCall tailId                    ) )
+  , (initId           , (1, Left $ genExprFCall initId                    ) )
+  , (takeId           , (2, Left $ genExprFCall takeId                    ) )
+  , (dropId           , (2, Left $ genExprFCall dropId                    ) )
+  , (plusgtId         , (2, Left $ genExprFCall plusgtId                  ) )
+  , (mapId            , (2, Right $ genMapCall                            ) )
+  , (zipWithId        , (3, Right $ genZipWithCall                        ) )
+  , (foldlId          , (3, Right $ genFoldlCall                          ) )
+  , (emptyId          , (0, Left $ genExprFCall emptyId                   ) )
+  , (singletonId      , (1, Left $ genExprFCall singletonId               ) )
+  , (copyId           , (2, Left $ genExprFCall copyId                    ) )
+  , (hwxorId          , (2, Left $ genExprOp2 AST.Xor                     ) )
+  , (hwandId          , (2, Left $ genExprOp2 AST.And                     ) )
+  , (hworId           , (2, Left $ genExprOp2 AST.Or                      ) )
+  , (hwnotId          , (1, Left $ genExprOp1 AST.Not                     ) )
+  ]