import Constants
import Generate
-mkGlobalNameTable :: [(String, (Int, Builder) )] -> NameTable
+mkGlobalNameTable :: [(String, (Int, BuiltinBuilder) )] -> NameTable
mkGlobalNameTable = Map.fromList
globalNameTable :: NameTable
globalNameTable = mkGlobalNameTable
- [ ("!" , (2, Left $ genExprFCall exId ) )
- , ("replace" , (3, Left $ genExprFCall replaceId ) )
- , ("head" , (1, Left $ genExprFCall headId ) )
- , ("last" , (1, Left $ genExprFCall lastId ) )
- , ("tail" , (1, Left $ genExprFCall tailId ) )
- , ("init" , (1, Left $ genExprFCall initId ) )
- , ("take" , (2, Left $ genExprFCall takeId ) )
- , ("drop" , (2, Left $ genExprFCall dropId ) )
- , ("+>" , (2, Left $ genExprFCall plusgtId ) )
- , ("map" , (2, Right $ genMapCall ) )
- , ("empty" , (0, Left $ genExprFCall emptyId ) )
- , ("singleton" , (1, Left $ genExprFCall singletonId ) )
- , ("copy" , (2, Left $ genExprFCall copyId ) )
- , ("hwxor" , (2, Left $ genExprOp2 AST.Xor ) )
- , ("hwand" , (2, Left $ genExprOp2 AST.And ) )
- , ("hwor" , (2, Left $ genExprOp2 AST.Or ) )
- , ("hwnot" , (1, Left $ genExprOp1 AST.Not ) )
+ [ (exId , (2, genFCall ) )
+ , (replaceId , (3, genFCall ) )
+ , (headId , (1, genFCall ) )
+ , (lastId , (1, genFCall ) )
+ , (tailId , (1, genFCall ) )
+ , (initId , (1, genFCall ) )
+ , (takeId , (2, genFCall ) )
+ , (dropId , (2, genFCall ) )
+ , (plusgtId , (2, genFCall ) )
+ , (mapId , (2, genMap ) )
+ , (zipWithId , (3, genZipWith ) )
+ , (foldlId , (3, genFoldl ) )
+ , (emptyId , (0, genFCall ) )
+ , (singletonId , (1, genFCall ) )
+ , (copyId , (2, genFCall ) )
+ , (hwxorId , (2, genOperator2 AST.Xor ) )
+ , (hwandId , (2, genOperator2 AST.And ) )
+ , (hworId , (2, genOperator2 AST.Or ) )
+ , (hwnotId , (1, genOperator1 AST.Not ) )
]