X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=mTaskCode.icl;h=6360b5a33b41f6786a51be2b121be4da1cd2dcb2;hb=0d7dc6966d2f428cd7543708e220aa4315d64978;hp=8402abe01f439e15b07066bb0f6e84babe2fcdf9;hpb=4d5f3a126218768cf63fc693a095dd42247aa2c9;p=mTask.git diff --git a/mTaskCode.icl b/mTaskCode.icl index 8402abe..6360b5a 100644 --- a/mTaskCode.icl +++ b/mTaskCode.icl @@ -352,23 +352,6 @@ instance analogIO Code where 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 @@ -376,10 +359,10 @@ unC (C f) = f :: 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 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 = @@ -608,7 +591,7 @@ newCode = , iloop = 4 , includes = [] , def = Setup - , mode = NoReturn + , mode` = NoReturn , binds = [] }