[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 
make 
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 
files, 
giving you a complete documentation with working links).
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

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