1 module mTaskMakeSymbols
5 import GenEq, StdMisc, StdArray, GenBimap
19 from Data.Func import $
21 from Text import class Text(join,toUpperCase), instance Text String
23 (<+) infixr 5 :: a b -> String | toString a & toString b
24 (<+) a b = toString a +++ toString b
26 toDefine :: Int BC -> String
27 toDefine i b = "#define " <+ toUpperCase (consName{|*|} b) <+ " " <+ i
31 # io = io <<< "#ifndef MTASK_H\n#define MTASK_H\n"
32 # io = io <<< join "\n" (zipWith toDefine [0..] conses{|*|})
33 # (ok, w) = fclose (io <<< "\n#endif\n") w
34 | not ok = abort "Couldn't close stdio"