repositories
/
mTask.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed communication
[mTask.git]
/
mTaskInterpret.dcl
diff --git
a/mTaskInterpret.dcl
b/mTaskInterpret.dcl
index
fd22548
..
70dc6ad
100644
(file)
--- a/
mTaskInterpret.dcl
+++ b/
mTaskInterpret.dcl
@@
-5,6
+5,21
@@
from Control.Monad.State import :: State, :: StateT
from Data.Monoid import class Semigroup, class Monoid
import mTask
from Data.Monoid import class Semigroup, class Monoid
import mTask
+:: MTaskMSGRecv
+ = MTPub Int String
+ | MTMessage String
+ | MTEmpty
+
+:: MTaskMSGSend
+ = MTSds Int String
+ | MTTask Int String
+ | MTUpd Int String
+
+instance toString MTaskMSGRecv
+instance toString MTaskMSGSend
+encode :: MTaskMSGSend -> String
+decode :: String -> MTaskMSGRecv
+
:: BC
= BCNop
| BCLab Int
:: BC
= BCNop
| BCLab Int
@@
-53,7
+68,8
@@
instance Monoid (ByteCode a p)
:: BCState = {
freshl :: [Int],
:: BCState = {
freshl :: [Int],
- freshs :: [Int]
+ freshs :: [Int],
+ sdss :: [(Int, [Char])]
}
instance zero BCState
}
instance zero BCState
@@
-70,10
+86,10
@@
instance arith ByteCode
instance boolExpr ByteCode
instance analogIO ByteCode
instance digitalIO 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 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
instance IF ByteCode
instance noOp ByteCode
@@
-82,6
+98,11
@@
instance assign ByteCode
instance seq ByteCode
instance serial ByteCode
instance seq ByteCode
instance serial ByteCode
+//pub :: (ByteCode a b) -> ByteCode a b
+
+toMessages :: Int (String, BCState) -> ([MTaskMSGSend], BCState)
+toSDSUpdate :: Int Int -> [MTaskMSGSend]
+
toByteVal :: BC -> [Char]
toByteVal :: BC -> [Char]
-toReadableByteCode :: (ByteCode a
Expr) -> String
-toRealByteCode :: (ByteCode a
Expr) -> String
+toReadableByteCode :: (ByteCode a
b) -> (String, BCState)
+toRealByteCode :: (ByteCode a
b) -> (String, BCState)