make lib compilable
[mTask.git] / mTaskInterpret.icl
index f0cddf9..2c44484 100644 (file)
@@ -26,6 +26,7 @@ import Text.Encodings.Base64
 
 encode :: MTaskMSGSend -> String
 encode (MTTask to data) = "t" +++ to16bit to +++ to16bit (size data) +++ data +++ "\n"
+encode (MTTaskDel i) = "d" +++ to16bit i +++ "\n"
 encode (MTSds i v) = "s" +++ to16bit i +++ v +++ "\n"
 encode (MTUpd i v) = "u" +++ to16bit i +++ v +++ "\n"
 
@@ -50,6 +51,7 @@ instance toString MTaskMSGSend where
                +++ " value " +++ safePrint v
        toString (MTTask to data) = "Task timeout: " +++ toString to
                +++ " data " +++ safePrint data
+       toString (MTTaskDel i) = "Task delete request: " +++ toString i
        toString (MTUpd i v) = "Update id: " +++ toString i
                +++ " value " +++ safePrint v
 
@@ -229,9 +231,9 @@ instance zero BCState where
        zero = {freshl=[1..], freshs=[1..], sdss=[]}
 
 
-toRealByteCode :: (ByteCode a b) -> (String, BCState)
-toRealByteCode x
-# (bc, st) = runBC x zero
+toRealByteCode :: (ByteCode a b) BCState -> (String, BCState)
+toRealByteCode x s
+# (bc, st) = runBC x s
 # (bc, gtmap) = computeGotos bc 1
 = (concat $ map (toString o toByteVal) (map (implGotos gtmap) bc), st)
 
@@ -265,7 +267,7 @@ toMessages interval (bytes, st=:{sdss}) = ([MTSds i (toString b)\\(i,b)<-sdss] +
 toSDSUpdate :: Int Int -> [MTaskMSGSend]
 toSDSUpdate i v = [MTUpd i (to16bit v)]
 
-Start = toMessages 500 $ toRealByteCode (unMain bc)
+Start = toMessages 500 $ toRealByteCode (unMain bc) zero
        where
                bc = sds \x=5 In 
                        sds \y=4 In