Split off the VHDL type generating code.
[matthijs/master-project/cλash.git] / GlobalNameTable.hs
1 {-# LANGUAGE TemplateHaskell #-}
2
3 module GlobalNameTable (globalNameTable) where
4
5 import Language.Haskell.TH
6 import qualified Data.Map as Map
7
8 import qualified ForSyDe.Backend.VHDL.AST as AST
9 import qualified Data.Param.TFVec as V
10
11 import VHDLTypes
12 import Constants
13 import Generate
14
15 mkGlobalNameTable :: [(String, (Int, [AST.Expr] -> AST.Expr ) )] -> NameTable
16 mkGlobalNameTable = Map.fromList
17
18 globalNameTable :: NameTable
19 globalNameTable = mkGlobalNameTable
20   [ (show ('(V.!))           , (2, genExprFCall2L exId                           ) )
21   , ("head"          , (1, genExprFCall1L headId                         ) )
22   ]