migrate to new version
[mTask.git] / mTaskInterpret.dcl
index 8f4bd40..fe68463 100644 (file)
@@ -23,6 +23,7 @@ from Generics.gCons import class gCons, generic conses, generic consName, generi
 :: MTaskMSGSend
        = MTTask MTaskInterval String
        | MTTaskDel Int
+       | MTShutdown
        | MTSds Int BCValue
        | MTUpd Int BCValue
        | MTSpec
@@ -39,7 +40,9 @@ from Generics.gCons import class gCons, generic conses, generic consName, generi
                ,bytesMemory :: Int
        }
 
-:: BCValue = E.e: BCValue e & mTaskType e
+:: BCValue = E.e: BCValue e & mTaskType, TC e
+
+instance == BCValue
 
 instance toString MTaskInterval
 instance toString MTaskMSGRecv
@@ -54,9 +57,9 @@ decode :: String -> MTaskMSGRecv
 //     | BCPush String
        | BCPop
        //SDS functions
-       | BCSdsStore Int
-       | BCSdsFetch Int
-       | BCSdsPublish Int
+       | BCSdsStore BCShare
+       | BCSdsFetch BCShare
+       | BCSdsPublish BCShare
        //Unary ops
        | BCNot
        //Binary Int ops
@@ -67,6 +70,7 @@ decode :: String -> MTaskMSGRecv
        //Binary Bool ops
        | BCAnd
        | BCOr
+       //Binary ops
        | BCEq
        | BCNeq
        | BCLes
@@ -113,13 +117,12 @@ derive gEq BCValue
 
 :: BCShare = {
                sdsi :: Int,
-               sdspub :: Bool,
                sdsval :: BCValue
        }
 
 :: BCState = {
-               freshl :: [Int],
-               freshs :: [Int],
+               freshl :: Int,
+               freshs :: Int,
                sdss :: [BCShare]
        }
 instance zero BCState
@@ -137,6 +140,8 @@ instance arith ByteCode
 instance boolExpr ByteCode
 instance analogIO ByteCode
 instance digitalIO ByteCode
+instance aIO ByteCode
+instance dIO ByteCode
 instance userLed ByteCode
 instance If ByteCode Stmt Stmt Stmt
 instance If ByteCode e Stmt Stmt
@@ -147,6 +152,7 @@ instance noOp ByteCode
 instance retrn ByteCode
 
 instance sds ByteCode
+instance sdspub ByteCode
 instance assign ByteCode
 instance seq ByteCode
 instance serial ByteCode