X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=GlobalNameTable.hs;h=8d38f6c34bc2bbe72d21e2b58427af1c70828c17;hb=acdf6e104979ff6354caeecf73eef680ea9369e4;hp=6317ebcee9a5125ef01519728edc8f8de05d700f;hpb=10879104f70572cd8df098f28074f36f5b308f32;p=matthijs%2Fmaster-project%2Fc%CE%BBash.git diff --git a/GlobalNameTable.hs b/GlobalNameTable.hs index 6317ebc..8d38f6c 100644 --- a/GlobalNameTable.hs +++ b/GlobalNameTable.hs @@ -12,15 +12,24 @@ 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, genExprFCall exId ) ) - , ("head" , (1, genExprFCall headId ) ) - , ("hwxor" , (2, genExprOp2 AST.Xor ) ) - , ("hwand" , (2, genExprOp2 AST.And ) ) - , ("hwor" , (2, genExprOp2 AST.Or ) ) - , ("hwnot" , (1, genExprOp1 AST.Not ) ) + [ ("!" , (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 ) ) + , ("hwxor" , (2, Left $ genExprOp2 AST.Xor ) ) + , ("hwand" , (2, Left $ genExprOp2 AST.And ) ) + , ("hwor" , (2, Left $ genExprOp2 AST.Or ) ) + , ("hwnot" , (1, Left $ genExprOp1 AST.Not ) ) ]