add sending and encoding options
[mTask.git] / mTaskInterpret.dcl
index fd22548..bca5df7 100644 (file)
@@ -5,6 +5,17 @@ from Control.Monad.State import :: State, :: StateT
 from Data.Monoid import class Semigroup, class Monoid
 import mTask
 
+:: MTaskMessage 
+       = MTSds Int String
+       | MTTask Int String
+       | MTPub Int String
+       | MTUpd Int String
+
+instance toString MTaskMessage
+safePrint :: String -> String
+encode :: MTaskMessage -> String
+decode :: String -> MTaskMessage
+
 :: BC
        = BCNop
        | BCLab Int
@@ -53,7 +64,8 @@ instance Monoid (ByteCode a p)
 
 :: BCState = {
                freshl :: [Int],
-               freshs :: [Int]
+               freshs :: [Int],
+               sdss :: [(Int, [Char])]
        }
 instance zero BCState
 
@@ -82,6 +94,8 @@ instance assign ByteCode
 instance seq ByteCode
 instance serial ByteCode
 
+toMessages :: Int (String, BCState) -> [MTaskMessage]
+
 toByteVal :: BC -> [Char]
-toReadableByteCode :: (ByteCode a Expr) -> String
-toRealByteCode :: (ByteCode a Expr) -> String
+toReadableByteCode :: (ByteCode a b) -> (String, BCState)
+toRealByteCode :: (ByteCode a b) -> (String, BCState)