update
[mTask.git] / mTaskInterpret.dcl
index 578d335..99a3533 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
@@ -54,9 +55,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 +68,7 @@ decode :: String -> MTaskMSGRecv
        //Binary Bool ops
        | BCAnd
        | BCOr
+       //Binary ops
        | BCEq
        | BCNeq
        | BCLes
@@ -91,7 +93,8 @@ decode :: String -> MTaskMSGRecv
        | BCAnalogWrite Pin
        | BCDigitalRead Pin
        | BCDigitalWrite Pin
-       | BCTest AnalogPin
+       //Return
+       | BCReturn
 
 derive gPrint BCValue, MTaskDeviceSpec
 derive consIndex BCValue
@@ -112,7 +115,6 @@ derive gEq BCValue
 
 :: BCShare = {
                sdsi :: Int,
-               sdspub :: Bool,
                sdsval :: BCValue
        }
 
@@ -136,6 +138,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
@@ -143,6 +147,7 @@ instance If ByteCode Stmt e Stmt
 instance If ByteCode x y Stmt
 instance IF ByteCode
 instance noOp ByteCode
+instance retrn ByteCode
 
 instance sds ByteCode
 instance assign ByteCode