[email protected]
[Top] [All Lists]

Re: [Haskell-cafe] Re: Allowing hyphens in identifiers

Subject: Re: [Haskell-cafe] Re: Allowing hyphens in identifiers
From: Daniel Fischer
Date: Wed, 16 Dec 2009 10:18:00 +0100
Am Mittwoch 16 Dezember 2009 07:56:26 schrieb Colin Paul Adams:
> >>>>> "Daniel" == Daniel Fischer <[email protected]> writes:
>     Daniel> Now, would you be interested in a transformation the other
>     Daniel> way round, so that you can read other people's code in
>     Daniel> your preferred style?
> I would, applied to the output of haddock, at least.

As a pre-alpha version:

module Main (main) where

import Data.Char (isUpper, isLower, toLower)

main :: IO ()
main = interact unCamel

unCamel :: String -> String
unCamel ('<':cs) = '<' : inTag cs
unCamel (a:[email protected](b:cs))
    | isLower a && isUpper b    = a : '_' : toLower b : unCamel cs
    | otherwise                 = a : unCamel bs
unCamel cs = cs

inTag :: String -> String
inTag ('>':cs)  = '>' : unCamel cs
inTag (a:cs)    =  a  : inTag cs
inTag []        = []

Compile, run with

./unCamel < /path/to/HaddockOutput.html > /path/to/Haddock_output.html

(or whatever Windows uses to redirect stdin and stdout)
This makes a few not-well-founded assumptions about haddock's output. Try it on 
a couple 
of files, report bugs. If it works satisfactorily, we can add a front-end to 
transformation easy (like, pass an input directory and an output directory on 
the command 
line, and it recursively copies the directory content, transforming all .html 
giving you a complete documentation with working links).
Haskell-Cafe mailing list
[email protected]

<Prev in Thread] Current Thread [Next in Thread>