:: MTaskMSGSend
= MTTask MTaskInterval String
| MTTaskDel Int
+ | MTShutdown
| MTSds Int BCValue
| MTUpd Int BCValue
| MTSpec
,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
// | BCPush String
| BCPop
//SDS functions
- | BCSdsStore Int
- | BCSdsFetch Int
- | BCSdsPublish Int
+ | BCSdsStore BCShare
+ | BCSdsFetch BCShare
+ | BCSdsPublish BCShare
//Unary ops
| BCNot
//Binary Int ops
:: BCShare = {
sdsi :: Int,
- sdspub :: Bool,
sdsval :: BCValue
}
:: BCState = {
- freshl :: [Int],
- freshs :: [Int],
+ freshl :: Int,
+ freshs :: Int,
sdss :: [BCShare]
}
instance zero BCState
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
instance retrn ByteCode
instance sds ByteCode
+instance sdspub ByteCode
instance assign ByteCode
instance seq ByteCode
instance serial ByteCode