Update of /cvsroot/gtk2hs/gtk2hs/tools/c2hs/c2hs/gen
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15642/c2hs/gen
Modified Files:
GBMonad.hs
Log Message:
add Axel's --precomp patches with a binary serialisation framework derived from
the one used in ghc. This required makeing Position a proper data type.
Also converted to using Data.FiniteMap rather than the CTK FiniteMaps module.
Index: GBMonad.hs
===================================================================
RCS file: /cvsroot/gtk2hs/gtk2hs/tools/c2hs/c2hs/gen/GBMonad.hs,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- GBMonad.hs 13 Nov 2004 16:42:39 -0000 1.1.1.1
+++ GBMonad.hs 13 Nov 2004 17:26:53 -0000 1.2
@@ -80,8 +80,8 @@
import Common (Position, Pos(posOf), nopos, builtinPos)
import Errors (interr)
import Idents (Ident, identToLexeme, onlyPosIdent)
-import FiniteMaps (FiniteMap, zeroFM, addToFM, lookupFM, joinFM, toListFM,
- listToFM)
+import Data.FiniteMap (FiniteMap, emptyFM, addToFM, lookupFM, plusFM,
+ fmToList, listToFM)
-- C -> Haskell
import C (CT, readCT, transCT, raiseErrorCTExc)
@@ -237,8 +237,8 @@
lib = "",
prefix = "",
frags = [],
- ptrmap = zeroFM,
- objmap = zeroFM
+ ptrmap = emptyFM,
+ objmap = emptyFM
}
-- set the dynamic library and library prefix
@@ -299,7 +299,7 @@
ptrMapsTo :: (Bool, Ident) -> (String, String) -> GB ()
(isStar, cName) `ptrMapsTo` hsRepr =
transCT (\state -> (state {
- ptrmap = addToFM (isStar, cName) hsRepr (ptrmap state)
+ ptrmap = addToFM (ptrmap state) (isStar, cName) hsRepr
}, ()))
-- query the pointer map
@@ -314,7 +314,7 @@
objIs :: Ident -> HsObject -> GB ()
hsName `objIs` obj =
transCT (\state -> (state {
- objmap = addToFM hsName obj (objmap state)
+ objmap = addToFM (objmap state) hsName obj
}, ()))
-- query the Haskell object map
@@ -367,8 +367,8 @@
mergeMaps :: String -> GB ()
mergeMaps str =
transCT (\state -> (state {
- ptrmap = joinFM readPtrMap (ptrmap state),
- objmap = joinFM readObjMap (objmap state)
+ ptrmap = plusFM readPtrMap (ptrmap state),
+ objmap = plusFM readObjMap (objmap state)
}, ()))
where
(ptrAssoc, objAssoc) = read str
@@ -384,9 +384,9 @@
ptrFM <- readCT ptrmap
objFM <- readCT objmap
let dumpable = ([((isStar, identToLexeme ide), repr)
- | ((isStar, ide), repr) <- toListFM ptrFM],
+ | ((isStar, ide), repr) <- fmToList ptrFM],
[(identToLexeme ide, obj)
- | (ide, obj) <- toListFM objFM])
+ | (ide, obj) <- fmToList objFM])
return $ show dumpable
|