-from Text import class Text(join,toUpperCase), instance Text String
-
-toByteVal :: BC -> String
-toByteVal a = undef
-
-derive gPrint BC, AnalogPin
-derive consIndex BC
-derive consName BC
+from Text import class Text(concat,join,toUpperCase), instance Text String
+
+toByteVal :: BC -> [Char]
+toByteVal b
+# bt = toByteCode b
+= [bt:case b of
+ (BCPush i) = [toChar i]
+ (BCAnalogRead i) = [toChar i]
+ (BCAnalogRead i) = [toChar i]
+ (BCAnalogWrite i) = [toChar i]
+ (BCDigitalRead i) = [toChar i]
+ (BCDigitalWrite i) = [toChar i]
+ (BCJmp i) = [toChar i]
+ (BCJmpT i) = [toChar i]
+ (BCJmpF i) = [toChar i]
+ _ = []]
+ where
+ toByteCode b = toChar $ consIndex{|*|} b + 1
+
+instance toChar Pin where
+ toChar (Digital p) = toChar $ consIndex{|*|} p + 1
+ toChar (Analog p) = toChar $ consIndex{|*|} p + 1
+
+derive gPrint BC, AnalogPin, Pin, DigitalPin
+derive consIndex BC, Pin
+derive consName BC, Pin