repositories
/
mTask.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refactoors
[mTask.git]
/
mTaskInterpret.dcl
diff --git
a/mTaskInterpret.dcl
b/mTaskInterpret.dcl
index
578d335
..
3e7513f
100644
(file)
--- a/
mTaskInterpret.dcl
+++ b/
mTaskInterpret.dcl
@@
-23,6
+23,7
@@
from Generics.gCons import class gCons, generic conses, generic consName, generi
:: MTaskMSGSend
= MTTask MTaskInterval String
| MTTaskDel Int
:: MTaskMSGSend
= MTTask MTaskInterval String
| MTTaskDel Int
+ | MTShutdown
| MTSds Int BCValue
| MTUpd Int BCValue
| MTSpec
| MTSds Int BCValue
| MTUpd Int BCValue
| MTSpec
@@
-33,13
+34,18
@@
from Generics.gCons import class gCons, generic conses, generic consName, generi
| OnInterrupt Int
:: MTaskDeviceSpec =
| OnInterrupt Int
:: MTaskDeviceSpec =
- {haveLed :: Bool
- ,haveAio :: Bool
- ,haveDio :: Bool
+ {haveLed :: Bool
+ ,haveAio :: Bool
+ ,haveDio :: Bool
+ ,aPins :: Int
+ ,dPins :: Int
+ ,stackSize :: Int
,bytesMemory :: 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
+60,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
+73,7
@@
decode :: String -> MTaskMSGRecv
//Binary Bool ops
| BCAnd
| BCOr
//Binary Bool ops
| BCAnd
| BCOr
+ //Binary ops
| BCEq
| BCNeq
| BCLes
| BCEq
| BCNeq
| BCLes
@@
-91,7
+98,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
@@
-110,15
+118,15
@@
derive gEq BCValue
:: ByteCode a p = BC (RWS () [BC] BCState ())
:: ByteCode a p = BC (RWS () [BC] BCState ())
-:: BCShare =
{
- sdsi :: Int,
- sdspub :: Bool,
- sdsval :: BCValue
+:: BCShare =
+ { sdsi :: Int
+ , sdsval :: BCValue
+ , sdsname :: String
}
:: BCState = {
}
:: BCState = {
- freshl ::
[Int]
,
- freshs ::
[Int]
,
+ freshl ::
Int
,
+ freshs ::
Int
,
sdss :: [BCShare]
}
instance zero BCState
sdss :: [BCShare]
}
instance zero BCState
@@
-136,6
+144,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,8
+153,10
@@
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