mTasks can now be built with normal taskss
[mTask.git] / mTaskMakeSymbols.icl
index b18c546..356493f 100644 (file)
@@ -1,7 +1,8 @@
 module mTaskMakeSymbols
 
 //import iTasks
-import gdynamic, gCons, GenEq, StdMisc, StdArray, GenBimap
+import Generics.gCons
+import GenEq, StdMisc, StdArray, GenBimap
 import GenPrint
 import mTask
 import StdEnum
@@ -15,11 +16,12 @@ import StdTuple
 import Data.Tuple
 import StdList
 from Data.Func import $
+import Data.List
 from Text import class Text(join,toUpperCase), instance Text String
 
-derive consIndex BC
-derive consName BC
-derive conses BC, AnalogPin
+derive consIndex BC, Pin
+derive consName BC, Pin
+derive conses BC, AnalogPin, DigitalPin, Pin
 
 (<+) infixr 5 :: a b -> String | toString a & toString b
 (<+) a b = toString a +++ toString b
@@ -30,7 +32,7 @@ toDefine i b = "#define " <+ toUpperCase (consName{|*|} b) <+ " " <+ i
 Start w
 # (io, w) = stdio w
 # io = io <<< "#ifndef MTASK_H\n#define MTASK_H\n"
-# io = io <<< join "\n" (map (uncurry toDefine) (zip2 [0..] conses{|*|}))
+# io = io <<< join "\n" (zipWith toDefine [0..] conses{|*|})
 # (ok, w) = fclose (io <<< "\n#endif\n") w
 | not ok = abort "Couldn't close stdio"
 = w