haskell-src-exts-1.18.2: Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer

Portabilityportable
Stabilityexperimental
MaintainerNiklas Broberg, d00nibro@chalmers.se
Safe HaskellSafe-Inferred

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])

Associates an AST with Source Span Information with relevant Haddock comments

data Comment

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

Constructors

Comment Bool SrcSpan String 

Instances

Eq Comment 
Data Comment 
Show Comment 
Typeable Comment 

data UnknownPragma

An unknown pragma.

Constructors

UnknownPragma SrcSpan String 

Instances