packages feed

her-lexer-0.1: src/Language/Haskell/Her/FromClutterToLines.lhs

>module Language.Haskell.Her.FromClutterToLines where
>import Language.Haskell.Her.HaLay
>import Data.List.Split

| When we get the tokss from her-parser's ready, they're a bit cluttered.  I'm not sure what Dr. McBride had in mind when he made that mess.  But this doesn't mater, from this clutter we can create a list of lines which is aware of haskell's brackets.  If a multi-line clause is inside brackets, then we keep the whole section in the same "line".

>fromClutterToLines :: [[Tok]] -> [[Tok]]
>fromClutterToLines tokss =
> split (keepDelimsL $
>        whenElt
>         (\a ->
>          case a of
>           NL _ -> True
>           _ -> False))
>       $ (NL (" ",0)) : concat tokss