update'
[mTask.git] / mTaskInterpret.dcl
index 1baf878..70dc6ad 100644 (file)
@@ -5,16 +5,20 @@ from Control.Monad.State import :: State, :: StateT
 from Data.Monoid import class Semigroup, class Monoid
 import mTask
 
-:: MTaskMessage 
+:: MTaskMSGRecv
+       = MTPub Int String
+       | MTMessage String
+       | MTEmpty
+
+:: MTaskMSGSend
        = MTSds Int String
        | MTTask Int String
-       | MTPub Int String
        | MTUpd Int String
-       | MTEmpty
 
-instance toString MTaskMessage
-encode :: MTaskMessage -> String
-decode :: String -> MTaskMessage
+instance toString MTaskMSGRecv
+instance toString MTaskMSGSend
+encode :: MTaskMSGSend -> String
+decode :: String -> MTaskMSGRecv
 
 :: BC
        = BCNop
@@ -82,10 +86,10 @@ instance arith ByteCode
 instance boolExpr ByteCode
 instance analogIO ByteCode
 instance digitalIO ByteCode
-instance If ByteCode Stmt Stmt Stmt
-instance If ByteCode e Stmt Stmt
-instance If ByteCode Stmt e Stmt
-instance If ByteCode x y Expr
+//instance If ByteCode Stmt Stmt Stmt
+//instance If ByteCode e Stmt Stmt
+//instance If ByteCode Stmt e Stmt
+instance If ByteCode x y Stmt
 instance IF ByteCode
 instance noOp ByteCode
 
@@ -96,7 +100,8 @@ instance serial ByteCode
 
 //pub :: (ByteCode a b) -> ByteCode a b
 
-toMessages :: Int (String, BCState) -> [MTaskMessage]
+toMessages :: Int (String, BCState) -> ([MTaskMSGSend], BCState)
+toSDSUpdate :: Int Int -> [MTaskMSGSend]
 
 toByteVal :: BC -> [Char]
 toReadableByteCode :: (ByteCode a b) -> (String, BCState)