summaryrefslogtreecommitdiff
path: root/src/runtime/haskell/PGF/Binary.hs
diff options
context:
space:
mode:
authorkr.angelov <kr.angelov@gmail.com>2013-09-27 15:09:48 +0000
committerkr.angelov <kr.angelov@gmail.com>2013-09-27 15:09:48 +0000
commit426bc49a52b4efa0ef0129d713842d8c9abdf0ff (patch)
treed9f5985559de0347448e77ff26ce5a2d3ee2f245 /src/runtime/haskell/PGF/Binary.hs
parentb138899512d9aea248160eb17df3007e55dd03da (diff)
a major refactoring in the C and the Haskell runtimes. Note incompatible change in the PGF format!!!
The following are the outcomes: - Predef.nonExist is fully supported by both the Haskell and the C runtimes - Predef.BIND is now an internal compiler defined token. For now it behaves just as usual for the Haskell runtime, i.e. it generates &+. However, the special treatment will let us to handle it properly in the C runtime. - This required a major change in the PGF format since both nonExist and BIND may appear inside 'pre' and this was not supported before.
Diffstat (limited to 'src/runtime/haskell/PGF/Binary.hs')
-rw-r--r--src/runtime/haskell/PGF/Binary.hs6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/runtime/haskell/PGF/Binary.hs b/src/runtime/haskell/PGF/Binary.hs
index 865f98417..3c9dcc265 100644
--- a/src/runtime/haskell/PGF/Binary.hs
+++ b/src/runtime/haskell/PGF/Binary.hs
@@ -76,10 +76,6 @@ instance Binary Concr where
, cnccats=cnccats, totalCats=totalCats
})
-instance Binary Alternative where
- put (Alt v x) = put (v,x)
- get = liftM2 Alt get get
-
instance Binary Expr where
put (EAbs b x exp) = putWord8 0 >> put (b,x,exp)
put (EApp e1 e2) = putWord8 1 >> put (e1,e2)
@@ -153,6 +149,7 @@ instance Binary Symbol where
put (SymKS ts) = putWord8 3 >> put ts
put (SymKP d vs) = putWord8 4 >> put (d,vs)
put SymNE = putWord8 5
+ put SymBIND = putWord8 6
get = do tag <- getWord8
case tag of
0 -> liftM2 SymCat get get
@@ -161,6 +158,7 @@ instance Binary Symbol where
3 -> liftM SymKS get
4 -> liftM2 (\d vs -> SymKP d vs) get get
5 -> return SymNE
+ 6 -> return SymBIND
_ -> decodingError
instance Binary PArg where