1 2module Main where 3 4main 5 = do x1 <- readFile "test2.sorted" 6 let x2 = lines x1 7 x3 = zip [1 ..] x2 8 x4 = concat (map qq x3) 9 --putStr x4 10 writeFile "test2.orig" x4 11 12 13qq :: (Int, String) -> String 14qq (n, s0) 15 = let ws = words s0 16 bytes = head ws 17 rest = unwords (tail ws) 18 bytes2 = foo bytes 19 in 20 unlines [ 21 "", 22 rest, 23 ". " ++ show n ++ " 0x12345678 " ++ show (1 + (length bytes `div` 2)), 24 ". " ++ bytes2 ++ "C3" 25 ] 26 27 28foo [] = [] 29foo (x:y:rest) = x:y:' ':foo rest 30