Newer
Older
#!/usr/bin/env -S runhaskell --ghc-arg="-Wall" --ghc-arg="-i lib"
Alice Brenon
committed
import Data.Char (isUpper, isLower)
Alice Brenon
committed
import System.Environment (getArgs)
import System.Script (syntax)
Alice Brenon
committed
linearize :: String -> String
linearize "" = ""
linearize ('¬':'\n':s) = linearize s
linearize ('\n':'\n':s) = "\n\n" ++ linearize s
linearize ('.':'\n':c0:c1:c2:s)
| isUpper c0 && isLower c1 && isLower c2 = ".\n\n" ++ c0:c1:c2:linearize s
linearize ('.':'\n':'—':s) = ".\n\n—" ++ linearize s
Alice Brenon
committed
linearize ('\n':s) = ' ' : linearize s
linearize ('-':'\n':c:s)
| isUpper c = '-' : c : linearize s
linearize (c:s) = c : linearize s
main :: IO ()
main = getArgs >>= cli
where
cli [target] = xargs (pure.linearize) target
Alice Brenon
committed
cli _ = syntax "TARGET_DIR"