Initial commit for Pedro's new generic default methods
[ghc-hetmet.git] / compiler / parser / HaddockUtils.hs
1
2 module HaddockUtils where
3
4 import HsSyn
5 import SrcLoc
6
7 import Control.Monad
8
9 -- -----------------------------------------------------------------------------
10 -- Adding documentation to record fields (used in parsing).
11
12 addFieldDoc :: ConDeclField a -> Maybe LHsDocString -> ConDeclField a
13 addFieldDoc fld doc = fld { cd_fld_doc = cd_fld_doc fld `mplus` doc }
14
15 addFieldDocs :: [ConDeclField a] -> Maybe LHsDocString -> [ConDeclField a]
16 addFieldDocs [] _ = []
17 addFieldDocs (x:xs) doc = addFieldDoc x doc : xs
18
19 addConDoc :: LConDecl a -> Maybe LHsDocString -> LConDecl a
20 addConDoc decl    Nothing = decl
21 addConDoc (L p c) doc     = L p ( c { con_doc = con_doc c `mplus` doc } )
22
23 addConDocs :: [LConDecl a] -> Maybe LHsDocString -> [LConDecl a]
24 addConDocs [] _ = []
25 addConDocs [x] doc = [addConDoc x doc]
26 addConDocs (x:xs) doc = x : addConDocs xs doc
27
28 addConDocFirst :: [LConDecl a] -> Maybe LHsDocString -> [LConDecl a]
29 addConDocFirst [] _ = []
30 addConDocFirst (x:xs) doc = addConDoc x doc : xs