repositories
/
mTask.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
hopefully improved tcp and serial connection
[mTask.git]
/
mTaskCode.icl
diff --git
a/mTaskCode.icl
b/mTaskCode.icl
index
3edd2ce
..
cca5a67
100644
(file)
--- a/
mTaskCode.icl
+++ b/
mTaskCode.icl
@@
-1,7
+1,11
@@
implementation module mTaskCode
implementation module mTaskCode
-import iTasks
-import gdynamic, gCons, GenEq, StdMisc, StdArray
+import Generics.gdynamic
+import Generics.gCons
+import StdEnv
+
+//import iTasks
+import GenEq, StdMisc, StdArray
import mTask
instance toCode MTask where toCode (MTask x) = "Task " + toCode x
import mTask
instance toCode MTask where toCode (MTask x) = "Task " + toCode x
@@
-74,6
+78,7
@@
instance sds Code where
in setCode Var +.+ c (type2string v + " " + name + " = " + toCode v +
";\n") +.+ setCode Setup +.+ unMain body}
con f = defCode f
in setCode Var +.+ c (type2string v + " " + name + " = " + toCode v +
";\n") +.+ setCode Setup +.+ unMain body}
con f = defCode f
+ pub _ = undef
defCode :: ((Code t p) -> In t (Main (Code u q))) -> Main (Code u r) | type t
defCode f =
defCode :: ((Code t p) -> In t (Main (Code u q))) -> Main (Code u r) | type t
defCode f =
@@
-352,23
+357,6
@@
instance analogIO Code where
instance noOp Code where noOp = C \rw c.c
:: Code a p = C ((ReadWrite (Code a Expr)) CODE -> CODE)
instance noOp Code where noOp = C \rw c.c
:: Code a p = C ((ReadWrite (Code a Expr)) CODE -> CODE)
-:: CODE =
- { fresh :: Int
- , freshMTask :: Int
- , funs :: [String]
- , ifuns :: Int
- , vars :: [String]
- , ivars :: Int
- , setup :: [String]
- , isetup :: Int
- , loop :: [String]
- , iloop :: Int
- , includes :: [String]
- , def :: Def
- , mode :: Mode
- , binds :: [String]
- }
-
unC :: (Code a p) -> ((ReadWrite (Code a Expr)) CODE -> CODE)
unC (C f) = f
unC :: (Code a p) -> ((ReadWrite (Code a Expr)) CODE -> CODE)
unC (C f) = f
@@
-376,10
+364,10
@@
unC (C f) = f
:: Mode = /*MainMode |*/ NoReturn | Return String | SubExp | Assign String
setMode :: Mode -> Code a p
:: Mode = /*MainMode |*/ NoReturn | Return String | SubExp | Assign String
setMode :: Mode -> Code a p
-setMode m = C \rw c.{
c & mode
= m}
+setMode m = C \rw c.{
CODE|c & mode`
= m}
getMode :: (Mode -> Code a p) -> Code a p
getMode :: (Mode -> Code a p) -> Code a p
-getMode f = C \rw c.unC (f c.mode) rw c
+getMode f = C \rw c.unC (f c.mode
`
) rw c
embed :: (Code a p) -> Code a p
embed e =
embed :: (Code a p) -> Code a p
embed e =
@@
-395,10
+383,10
@@
embed e =
(+.+) (C f) (C g) = C \rw c.g Rd (f Rd c)
fresh :: (Int -> (Code a p)) -> (Code a p)
(+.+) (C f) (C g) = C \rw c.g Rd (f Rd c)
fresh :: (Int -> (Code a p)) -> (Code a p)
-fresh f = C \rw c.unC (f c.fresh) rw {c & fresh = c.fresh + 1}
+fresh f = C \rw c.unC (f c.fresh) rw {
CODE |
c & fresh = c.fresh + 1}
freshMTask :: (Int -> (Code a p)) -> (Code a p)
freshMTask :: (Int -> (Code a p)) -> (Code a p)
-freshMTask f = C \rw c.unC (f c.freshMTask) rw {c & freshMTask = c.freshMTask + 1}
+freshMTask f = C \rw c.unC (f c.freshMTask) rw {
CODE |
c & freshMTask = c.freshMTask + 1}
setCode :: Def -> (Code a p)
setCode d = C \rw c.{c & def = d}
setCode :: Def -> (Code a p)
setCode d = C \rw c.{c & def = d}
@@
-608,7
+596,7
@@
newCode =
, iloop = 4
, includes = []
, def = Setup
, iloop = 4
, includes = []
, def = Setup
- , mode = NoReturn
+ , mode
`
= NoReturn
, binds = []
}
, binds = []
}
@@
-635,4
+623,8
@@
instance toCode AnalogPin where toCode x = consName{|*|} x
instance toCode Pin where
toCode (Digital p) = toCode p
toCode (Analog p) = toCode p
instance toCode Pin where
toCode (Digital p) = toCode p
toCode (Analog p) = toCode p
+instance toCode UserLED where
+ toCode LED1 = toCode 1
+ toCode LED2 = toCode 2
+ toCode LED3 = toCode 3