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

25 lines
611 B
Plaintext

> --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' [] = []