add installation script
[mTask.git] / mTaskMakeSymbols.icl
index 15b78e4..f92cb2a 100644 (file)
@@ -15,11 +15,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 gconses 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 +31,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 [1..] 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