module DTFormat where import Data.Word import Text.Printf type Address = Word32 type Value = Word32 type ValueToParse = String type Code = String type Label = String type Comment = String data DTF = DTF_Data Address Value Code Label Comment | DTF_Instr Address Value Code Label Comment | DTF_Comment Comment | DTF_Label Label | DTF_ToParse Address ValueToParse Code Label Comment instance Show (DTF) where showsPrec n = showsDTF showsDTF :: DTF -> ShowS showsDTF (DTF_Data a v c l s) = (++) (datins "0" a v c l s) showsDTF (DTF_Instr a v c l s) = (++) (datins "1" a v c l s) showsDTF (DTF_Comment c) = (++) (printf "2;%s\n" c) showsDTF (DTF_Label l) = (++) (printf "3;%s\n" l) showsDTF (DTF_ToParse a v c l s) = (++) (printf "lulz\n") datins :: String -> Address -> Value -> Code -> Label -> Comment -> String datins = printf "%s;%08x;%08x;%s;%s;%s\n"