haskell-src-exts-1.23.1: 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-Inferred
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
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 Source #

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

toConstr :: Comment -> Constr Source #

dataTypeOf :: Comment -> DataType Source #

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

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

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

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

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

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

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

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

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

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

Show Comment Source # 
Instance details

Defined in Language.Haskell.Exts.Comments

Eq Comment Source # 
Instance details

Defined in Language.Haskell.Exts.Comments

data UnknownPragma Source #

An unknown pragma.

Instances

Instances details
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 Source #

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

toConstr :: UnknownPragma -> Constr Source #

dataTypeOf :: UnknownPragma -> DataType Source #

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

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

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

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

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

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

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

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

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

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

Show UnknownPragma Source # 
Instance details

Defined in Language.Haskell.Exts.Comments

Eq UnknownPragma Source # 
Instance details

Defined in Language.Haskell.Exts.Comments