1 {-# LANGUAGE TemplateHaskell #-}
3 module GlobalNameTable (globalNameTable) where
5 import Language.Haskell.TH
6 import qualified Data.Map as Map
8 import qualified ForSyDe.Backend.VHDL.AST as AST
9 import qualified Data.Param.TFVec as V
15 mkGlobalNameTable :: [(String, (Int, Builder) )] -> NameTable
16 mkGlobalNameTable = Map.fromList
18 globalNameTable :: NameTable
19 globalNameTable = mkGlobalNameTable
20 [ (exId , (2, Left $ genExprFCall exId ) )
21 , (replaceId , (3, Left $ genExprFCall replaceId ) )
22 , (headId , (1, Left $ genExprFCall headId ) )
23 , (lastId , (1, Left $ genExprFCall lastId ) )
24 , (tailId , (1, Left $ genExprFCall tailId ) )
25 , (initId , (1, Left $ genExprFCall initId ) )
26 , (takeId , (2, Left $ genExprFCall takeId ) )
27 , (dropId , (2, Left $ genExprFCall dropId ) )
28 , (plusgtId , (2, Left $ genExprFCall plusgtId ) )
29 , (mapId , (2, Right $ genMapCall ) )
30 , (zipWithId , (3, Right $ genZipWithCall ) )
31 , (foldlId , (3, Right $ genFoldlCall ) )
32 , (emptyId , (0, Left $ genExprFCall emptyId ) )
33 , (singletonId , (1, Left $ genExprFCall singletonId ) )
34 , (copyId , (2, Left $ genExprFCall copyId ) )
35 , (hwxorId , (2, Left $ genExprOp2 AST.Xor ) )
36 , (hwandId , (2, Left $ genExprOp2 AST.And ) )
37 , (hworId , (2, Left $ genExprOp2 AST.Or ) )
38 , (hwnotId , (1, Left $ genExprOp1 AST.Not ) )