1
Fork 0
simple-sql-parser/tools/FilterSpaces.hs

25 lines
575 B
Haskell
Raw Normal View History

--import System.IO
import System.Environment
main :: IO ()
main = do
[a] <- getArgs
r <- readFile a
let ls = lines r
putStrLn $ unlines $ map dedupeSpaces ls
dedupeSpaces :: String -> String
dedupeSpaces [] = []
-- don't start until after the leading spaces
-- including literate haskell source lines
dedupeSpaces xs@(x:_) | x `notElem` " >" = dedupeSpaces' xs
dedupeSpaces (x:xs) = x : dedupeSpaces xs
dedupeSpaces' :: String -> String
dedupeSpaces' (' ':xs@(' ':_)) = dedupeSpaces' xs
dedupeSpaces' (x:xs) = x : dedupeSpaces' xs
dedupeSpaces' [] = []