repositories
/
mTask.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
removed whileUnchanged for devices
[mTask.git]
/
mTaskInterpret.dcl
diff --git
a/mTaskInterpret.dcl
b/mTaskInterpret.dcl
index
f0795e1
..
67a6857
100644
(file)
--- a/
mTaskInterpret.dcl
+++ b/
mTaskInterpret.dcl
@@
-11,7
+11,7
@@
from GenPrint import generic gPrint
from Generics.gCons import class gCons, generic conses, generic consName, generic consIndex, generic consNum
:: MTaskMSGRecv
from Generics.gCons import class gCons, generic conses, generic consName, generic consIndex, generic consNum
:: MTaskMSGRecv
- = MTTaskAck Int
+ = MTTaskAck Int
Int
| MTTaskDelAck Int
| MTSDSAck Int
| MTSDSDelAck Int
| MTTaskDelAck Int
| MTSDSAck Int
| MTSDSDelAck Int
@@
-23,8
+23,10
@@
from Generics.gCons import class gCons, generic conses, generic consName, generi
:: MTaskMSGSend
= MTTask MTaskInterval String
| MTTaskDel Int
:: MTaskMSGSend
= MTTask MTaskInterval String
| MTTaskDel Int
- | MTSds Int String
- | MTUpd Int String
+ | MTShutdown
+ | MTSds Int BCValue
+ | MTUpd Int BCValue
+ | MTSpec
:: MTaskInterval
= OneShot
:: MTaskInterval
= OneShot
@@
-35,11
+37,12
@@
from Generics.gCons import class gCons, generic conses, generic consName, generi
{haveLed :: Bool
,haveAio :: Bool
,haveDio :: Bool
{haveLed :: Bool
,haveAio :: Bool
,haveDio :: Bool
- ,maxTask :: Int //Should be number of bytes reserved in total for shares, tasks and functions
- ,maxSDS :: Int
+ ,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
instance toString MTaskInterval
instance toString MTaskMSGRecv
@@
-54,9
+57,9
@@
decode :: String -> MTaskMSGRecv
// | BCPush String
| BCPop
//SDS functions
// | BCPush String
| BCPop
//SDS functions
- | BCSdsStore
Int
- | BCSdsFetch
Int
- | BCSdsPublish
Int
+ | BCSdsStore
BCShare
+ | BCSdsFetch
BCShare
+ | BCSdsPublish
BCShare
//Unary ops
| BCNot
//Binary Int ops
//Unary ops
| BCNot
//Binary Int ops
@@
-67,6
+70,7
@@
decode :: String -> MTaskMSGRecv
//Binary Bool ops
| BCAnd
| BCOr
//Binary Bool ops
| BCAnd
| BCOr
+ //Binary ops
| BCEq
| BCNeq
| BCLes
| BCEq
| BCNeq
| BCLes
@@
-91,7
+95,8
@@
decode :: String -> MTaskMSGRecv
| BCAnalogWrite Pin
| BCDigitalRead Pin
| BCDigitalWrite Pin
| BCAnalogWrite Pin
| BCDigitalRead Pin
| BCDigitalWrite Pin
- | BCTest AnalogPin
+ //Return
+ | BCReturn
derive gPrint BCValue, MTaskDeviceSpec
derive consIndex BCValue
derive gPrint BCValue, MTaskDeviceSpec
derive consIndex BCValue
@@
-112,7
+117,6
@@
derive gEq BCValue
:: BCShare = {
sdsi :: Int,
:: BCShare = {
sdsi :: Int,
- sdspub :: Bool,
sdsval :: BCValue
}
sdsval :: BCValue
}
@@
-136,6
+140,8
@@
instance arith ByteCode
instance boolExpr ByteCode
instance analogIO ByteCode
instance digitalIO 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
instance userLed ByteCode
instance If ByteCode Stmt Stmt Stmt
instance If ByteCode e Stmt Stmt
@@
-143,14
+149,15
@@
instance If ByteCode Stmt e Stmt
instance If ByteCode x y Stmt
instance IF ByteCode
instance noOp ByteCode
instance If ByteCode x y Stmt
instance IF ByteCode
instance noOp ByteCode
+instance retrn ByteCode
instance sds ByteCode
instance sds ByteCode
+instance sdspub ByteCode
instance assign ByteCode
instance seq ByteCode
instance serial ByteCode
instance assign ByteCode
instance seq ByteCode
instance serial ByteCode
-toMessages :: MTaskInterval (String, BCState) -> ([MTaskMSGSend], BCState)
-toSDSUpdate :: Int Int -> [MTaskMSGSend]
+toMessages :: MTaskInterval (Main (ByteCode a b)) BCState -> ([MTaskMSGSend], BCState)
toByteVal :: BC -> String
toReadableByteCode :: (ByteCode a b) BCState -> (String, BCState)
toByteVal :: BC -> String
toReadableByteCode :: (ByteCode a b) BCState -> (String, BCState)