haskell-src-exts-1.22.0: Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer
Copyright(c) JP Moresmau 2015
LicenseBSD-style (see the file LICENSE.txt)
MaintainerNiklas Broberg, d00nibro@chalmers.se
Stabilityexperimental
Portabilityportable
Safe HaskellSafe
LanguageHaskell98

Language.Haskell.Exts.Comments

Description

This module processes comments along with an annotated AST, to be able to associate Haddock comments with the actual item they refer to.

Example:

let
 parse1Result :: ParseResult (Module SrcSpanInfo,[Comment])
 parse1Result =
   parseFileContentsWithComments
    (defaultParseMode { parseFilename = file })
     contents
 withC :: ParseResult (Module (SrcSpanInfo,[Comment]))
 withC = case parse1Result of
           ParseOk res         -> ParseOk $ associateHaddock res
           ParseFailed sloc msg -> ParseFailed sloc msg

In this code sample, parse1Result is what you get when you parse a file: a Module annotated wth SrcSpanInfo, and a list of comments After passing the result to associateHaddock, you get a Module annotated with both a SrcSpanInfo and the list of Comment related to the specific AST node.

Synopsis

Documentation

associateHaddock :: (Annotated ast, Traversable ast) => (ast SrcSpanInfo, [Comment]) -> ast (SrcSpanInfo, [Comment]) Source #

Associates an AST with Source Span Information with relevant Haddock comments

data Comment Source #

A Haskell comment. The Bool is True if the comment is multi-line, i.e. {- -}.

Constructors

Comment Bool SrcSpan String 

Instances

Instances details
Eq Comment Source # 
Instance details

Defined in Language.Haskell.Exts.Comments

Methods

(==) :: Comment -> Comment -> Bool

(/=) :: Comment -> Comment -> Bool

Data Comment Source # 
Instance details

Defined in Language.Haskell.Exts.Comments

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Comment -> c Comment

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Comment

toConstr :: Comment -> Constr

dataTypeOf :: Comment -> DataType

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Comment)

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Comment)

gmapT :: (forall b. Data b => b -> b) -> Comment -> Comment

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Comment -> r

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Comment -> r

gmapQ :: (forall d. Data d => d -> u) -> Comment -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> Comment -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Comment -> m Comment

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Comment -> m Comment

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Comment -> m Comment

Show Comment Source # 
Instance details

Defined in Language.Haskell.Exts.Comments

Methods

showsPrec :: Int -> Comment -> ShowS

show :: Comment -> String

showList :: [Comment] -> ShowS

data UnknownPragma Source #

An unknown pragma.

Constructors

UnknownPragma SrcSpan String 

Instances

Instances details
Eq UnknownPragma Source # 
Instance details

Defined in Language.Haskell.Exts.Comments

Data UnknownPragma Source # 
Instance details

Defined in Language.Haskell.Exts.Comments

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> UnknownPragma -> c UnknownPragma

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c UnknownPragma

toConstr :: UnknownPragma -> Constr

dataTypeOf :: UnknownPragma -> DataType

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c UnknownPragma)

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c UnknownPragma)

gmapT :: (forall b. Data b => b -> b) -> UnknownPragma -> UnknownPragma

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> UnknownPragma -> r

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> UnknownPragma -> r

gmapQ :: (forall d. Data d => d -> u) -> UnknownPragma -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> UnknownPragma -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> UnknownPragma -> m UnknownPragma

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> UnknownPragma -> m UnknownPragma

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> UnknownPragma -> m UnknownPragma

Show UnknownPragma Source # 
Instance details

Defined in Language.Haskell.Exts.Comments

Methods

showsPrec :: Int -> UnknownPragma -> ShowS

show :: UnknownPragma -> String

showList :: [UnknownPragma] -> ShowS