X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=mTaskInterpret.icl;h=2c44484017529f042440435f10f12c6e2b780d22;hb=6abf86833edeae1742db393160db8a9e5c043889;hp=f0cddf9e26c2973313e51fffab4013aa767a7a97;hpb=0781ce1e845d7ec4bd06a39105d5d0d68835c693;p=mTask.git diff --git a/mTaskInterpret.icl b/mTaskInterpret.icl index f0cddf9..2c44484 100644 --- a/mTaskInterpret.icl +++ b/mTaskInterpret.icl @@ -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