from Data.Monoid import class Semigroup, class Monoid
import mTask
-:: MTaskMessage
- = MTSds Int String
- | MTTask Int String
+:: MTaskMSGRecv
+ = MTTaskAck Int
+ | MTTaskDelAck Int
+ | MTSDSAck Int
+ | MTSDSDelAck Int
| MTPub Int String
- | MTUpd Int String
+ | MTMessage String
| MTEmpty
-instance toString MTaskMessage
-encode :: MTaskMessage -> String
-decode :: String -> MTaskMessage
+:: MTaskMSGSend
+ = MTTask Int String
+ | MTSds Int String
+ | MTUpd Int String
+
+instance toString MTaskMSGRecv
+instance toString MTaskMSGSend
+encode :: MTaskMSGSend -> String
+decode :: String -> MTaskMSGRecv
:: BC
= BCNop
| BCJmp Int
| BCJmpT Int
| BCJmpF Int
+ //UserLED
+ | BCLedOn [Char]
+ | BCLedOff [Char]
//Serial
| BCSerialAvail
| BCSerialPrint
instance toByteCode String
instance toByteCode Long
instance toByteCode Button
+instance toByteCode UserLED
instance toChar Pin
instance arith ByteCode
instance boolExpr ByteCode
instance analogIO ByteCode
instance digitalIO ByteCode
-instance If ByteCode Stmt Stmt Stmt
-instance If ByteCode Stmt e Stmt
-instance If ByteCode Stmt Stmt e
-instance If ByteCode x y Expr
+instance userLed ByteCode
+//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
//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)
-toRealByteCode :: (ByteCode a b) -> (String, BCState)
+toRealByteCode :: (ByteCode a b) BCState -> (String, BCState)